Используя операторы сравнения в ИЗБРАННОМ пункте запроса T-SQL

Как выбрать результат оператора сравнения как поле с типом BIT?

Как это действительно работает в C#:

bool isGreater = FieldA > FieldB;

Как это не работает в T-SQL:

SELECT (FieldA > FieldB) AS BIT FROM t

Как записать такую задачу правильно?

42
задан abatishchev 1 February 2012 в 20:19
поделиться

2 ответа

Вы должны использовать предложение CASE:

CASE
    WHEN FieldA > FieldB THEN 1
    ELSE 0
END AS [BIT]
57
ответ дан 26 November 2019 в 23:33
поделиться
Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn

Если вы хотите вернуть BIT, то вам нужно преобразовать (или привести) к битовому типу данных, иначе SQL будет интерпретировать жестко закодированную константу (1 или 0) как целое число.

41
ответ дан 26 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: