Réponse simple : Non
SQL Server a un concept de type de données booléen mais il n’a pas de type de données booléen réel. Je ne peux pas déclarer une colonne avec un type de données booléen, et je ne peux pas l’utiliser de cette façon. Cependant, le concept de données booléennes est présent.
Par exemple, si j’écris ce qui suit :
SELECT *
FROM Sometable
WHERE Somecolumn = Someothercolumn
le résultat de cette comparaison est VRAI, FAUX, ou (n’oubliez pas) NULL. Et n’oubliez pas que NULL n’est pas une valeur, mais l’absence de valeur. Les clauses WHERE sont satisfaites lorsque la valeur du prédicat est VRAIE.
Donc, il existe un concept booléen dans le langage.
Notez toutefois que je ne peux pas écrire ceci :
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
Je ne peux pas simplement renvoyer une valeur VRAIE ou FAUX.
Si je l’écris sans l’alias, cela fonctionnera :
SELECT Somecolumn = Someothercolumn AS TheSameValue
FROM Sometable
mais dans ce cas, je renvoie la valeur de Someothercolumn aliasée (nommée comme) Somecolumn. Je ne renvoie pas la comparaison.
Mais n’est-ce pas la même chose qu’un bit ?
Non. Je ne peux pas utiliser une valeur de bit comme un booléen. Par exemple, je ne peux pas simplement écrire ceci :
IF ISNUMERIC(‘somestring’)
BEGIN
END
A la place, je dois écrire ceci :
IF ISNUMERIC(‘somestring’) <> 0
BEGIN
END
Notez que j’aurais pu écrire « = 1 » mais je préfère avec les valeurs binaires les comparer toujours à zéro dans toutes les langues, étant donné que certaines langues utilisent -1 pour VRAI et d’autres 1 pour VRAI.