2010-02-24 5 views
30

Как выбрать результат оператора сравнения как поля с типом BIT?Использование операторов сравнения в предложении SELECT запроса T-SQL

Как это работает в C#:

bool isGreater = FieldA > FieldB; 

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

SELECT (FieldA > FieldB) AS BIT FROM t 

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

ответ

43

Вы должны использовать пункт СЛУЧАЙ:

CASE 
    WHEN FieldA > FieldB THEN 1 
    ELSE 0 
END 
39
Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn 

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

Смежные вопросы