Selon Microsoft : la syntaxe de la recherche est
[ WHERE <search_condition> ]*
Et la condition de recherche est :
<search_condition> ::=
{ [ NOT ] <predicate> | ( <search_condition> ) }
[ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
[ ,...n ]
Et le prédicat est :
<predicate> ::=
{ expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } expression
Comme vous pouvez le voir, vous toujours doivent écrire deux expressions à comparer. Ici, la condition de recherche est expression booléenne comme 1=1, a!=b
Ne confondez pas les expressions de recherche avec constantes booléennes comme Vrai. o "Faux . Vous pouvez affecter des constantes booléennes aux variables BIT.
DECLARE @B BIT
SET @B='True'
mais en TSQL vous ne pouvez pas utiliser des constantes booléennes au lieu d'expressions booléennes comme ceci :
SELECT * FROM Somewhere WHERE 'True'
Cela ne fonctionnera pas.
Mais vous pouvez utiliser des constantes booléennes pour construire une expression de recherche à double sens comme ceci :
SEARCH * FROM Somewhere WHERE 'True'='True'
1 votes
Non, je veux juste voir si true fonctionne dans la clause where. Tout d'abord, je ne connais pas le littéral pour true et false.
4 votes
Le serveur SQL ne possède pas de type de données booléen ni les opérateurs nécessaires.
IS TRUE
,IS UNKNOWN
etc. (bien que la norme SQL-99 dispose des deux). Une solution de contournement courante consiste à utiliser unCHAR(1)
colonne contrainteCHECK (col1 IN ('T', 'F'))
.