Использование операторов сравнения в предложении SELECT запроса T-SQL

StackOverflow https://stackoverflow.com/questions/2330324

Вопрос

Как выбрать результат оператора сравнения в виде поля с типом 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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top