CASE
ステートメントはSQLのIFに最も近く、SQLServerのすべてのバージョンでサポートされています。
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
CAST
のみを使用する必要があります 結果をブール値にする場合は演算子。 int
に満足している場合 、これは機能します:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
ステートメントは他のCASE
に埋め込むことができます ステートメント、さらには集計に含まれています。
SQL Server Denali(SQL Server 2012)は、アクセスでも使用できるIIFステートメントを追加します(Martin Smithが指摘):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product