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