2010-02-24 26 views
30

的SELECT子句如何選擇比較運算的結果與BIT類型的字段?使用比較運營商T-SQL查詢

它是如何在C#工作:

bool isGreater = FieldA > FieldB; 

它是如何不T-SQL工作:

SELECT (FieldA > FieldB) AS BIT FROM t 

如何正確地寫這樣的任務呢?

回答

43

你應該使用CASE子句:

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)爲整數。