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?

È stato utile?

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
scroll top