web-dev-qa-db-ja.com

T-SQLクエリのSELECT句での比較演算子の使用

タイプBITのフィールドとして比較演算子の結果を選択するにはどうすればよいですか?

C#での動作:

bool isGreater = FieldA > FieldB;

T-SQLで機能しない場合:

SELECT (FieldA > FieldB) AS BIT FROM t

そのようなタスクを適切に書く方法は?

43
abatishchev

CASE句を使用する必要があります。

CASE
    WHEN FieldA > FieldB THEN 1
    ELSE 0
END AS [BIT]
58
Rockcoder
Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn

BITを返す場合は、ビットデータ型に変換(またはキャスト)する必要があります。そうでない場合、SQLはハードコードされた定数(1または0)を整数として解釈します。

42
George Mastros