Usando gli operatori di confronto in SELEZIONATE clausola di query T-SQL
-
22-09-2019 - |
Domanda
Come selezionare un risultato di operatore di confronto come un campo di tipo BIT?
Come funziona in C#
:
bool isGreater = FieldA > FieldB;
Come non funziona in T-SQL
:
SELECT (FieldA > FieldB) AS BIT FROM t
Come scrivere correttamente tale compito?
Soluzione
Si dovrebbe usare la clausola CASO:
CASE
WHEN FieldA > FieldB THEN 1
ELSE 0
END AS [BIT]
Altri suggerimenti
Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn
Se si desidera restituire un po ', poi è necessario il convertito (o fusione) per un tipo di dati bit, in caso contrario, SQL avrebbe interpretato la costante hard coded (1 o 0) come un intero.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow