Comment sélectionner un résultat d'opérateur de comparaison comme champ de type BIT?
Comment ça marche dans C#
:
bool isGreater = FieldA > FieldB;
Comment cela ne fonctionne pas dans T-SQL
:
SELECT (FieldA > FieldB) AS BIT FROM t
Comment écrire une telle tâche correctement?
Vous devez utiliser la clause CASE:
CASE
WHEN FieldA > FieldB THEN 1
ELSE 0
END AS [BIT]
Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn
Si vous souhaitez renvoyer un BIT, vous avez besoin de la conversion (ou de la conversion) en un type de données bit, sinon, SQL interpréterait la constante codée en dur (1 ou 0) comme un entier.