Question

How to select a result of comparison operator as a field with type BIT?

How it does work in C#:

bool isGreater = FieldA > FieldB;

How it doesn't work in T-SQL:

SELECT (FieldA > FieldB) AS BIT FROM t

How to write such task properly?

Was it helpful?

Solution

You should use CASE clause:

CASE
    WHEN FieldA > FieldB THEN 1
    ELSE 0
END AS [BIT]

OTHER TIPS

Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn

If you want to return a BIT, then you need the convert (or cast) to a bit data type, otherwise, SQL would interpret the hard coded constant (1 or 0) as an integer.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top