De CASE
statement komt het dichtst bij IF in SQL en wordt ondersteund op alle versies van SQL Server.
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
U hoeft alleen de CAST
. te gebruiken operator als u het resultaat als een Booleaanse waarde wilt. Als je tevreden bent met een int
, dit werkt:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
statements kunnen worden ingesloten in andere CASE
verklaringen en zelfs opgenomen in aggregaten.
SQL Server Denali (SQL Server 2012) voegt de IIF-instructie toe die ook beschikbaar is in access (aangeduid door Martin Smith):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product