Comment vérifier si le bit de la variable est vrai ou faux dans sql server?
J'ai une requête simple et tout ce que je veux faire est de vérifier si cette variable est vrai ou faux, et pour une raison quelconque, il renvoie toujours false.
DECLARE @CappedIFCheck BIT
SET @CappedIFCheck = (SELECT distinct 1
FROM mytable
WHERE 1=1);
select @CappedIFCheck
IF (@CappedIFCheck = 'True')
BEGIN
SELECT 'true';
END
ELSE
BEGIN
SELECT 'false';
END
J'ai dû modifier désolé
Fonctionne pour moi. Est
Fonctionne pour moi. Est
mytable
vide? Vous devriez utiliser IF EXISTS
de toute façon.OriginalL'auteur | 2013-12-09
Vous devez vous connecter pour publier un commentaire.
Un
bit
variable dans SQL Server peut avoir trois valeurs.0
,1
etNULL
.Les cordes
'true'
et'false'
carte de1
et0
respectivement.Votre code ne tient pas compte de la troisième valeur possible. Si
mytable
est vide, alors la variable ne sera pas initialisée et ont la valeurNULL
.Je ne suis pas sûr exactement ce que votre code est en train de faire, mais c'est une très inefficace manière d'aborder les choses. Vous devez utiliser
EXISTS
à la place.OriginalL'auteur Martin Smith
Lorsque l'on compare les valeurs des BITS de Sql Server, utilisez des valeurs littérales 1 et des 0 à la place de "True" et "False".
SI (@CappedIFCheck = 1) ...
Cela peut être un bon indice pour éviter varchar casting, mais c'est sûr que ça ne change rien à la logique de sage
OriginalL'auteur JSR
Essayez le jeu de clause de ce genre:
OriginalL'auteur Jayvee