Как выбрать результат оператора сравнения как поле с типом BIT?
Как это действительно работает в C#
:
bool isGreater = FieldA > FieldB;
Как это не работает в T-SQL
:
SELECT (FieldA > FieldB) AS BIT FROM t
Как записать такую задачу правильно?
Вы должны использовать предложение 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
Если вы хотите вернуть BIT, то вам нужно преобразовать (или привести) к битовому типу данных, иначе SQL будет интерпретировать жестко закодированную константу (1 или 0) как целое число.