53

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

それがどのように機能するかC#

bool isGreater = FieldA > FieldB;

それがどのように機能しないかT-SQL

SELECT (FieldA > FieldB) AS BIT FROM t

そのようなタスクを正しく書く方法は?

4

3 に答える 3

66

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

CASE
    WHEN FieldA > FieldB THEN 1
    ELSE 0
END AS [BIT]
于 2010-02-24T23:02:14.883 に答える
45
Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn

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

于 2010-02-24T23:01:51.620 に答える
3

関数を使用できIIFます。例えば:

SELECT IIF(FieldA > FieldB, 1, 0) AS YourBitColumn FROM t

IFF以下のような関数の構文:

IIF( boolean_expression, true_value, false_value )

IFFを返しますboolean_expression。trueの場合はtrue_value、それ以外の場合は、false_value

関数の詳細IFF論理関数-IIF(Transact-SQL)

于 2021-02-04T05:39:45.137 に答える