CASE
satsen är närmast IF i SQL och stöds på alla versioner av SQL Server.
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
Du behöver bara använda CAST
operatorn om du vill ha resultatet som ett booleskt värde. Om du är nöjd med en int
, detta fungerar:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
satser kan bäddas in i andra CASE
påståenden och till och med inkluderade i aggregat.
SQL Server Denali (SQL Server 2012) lägger till IIF-satsen som också är tillgänglig i access (påpekad av Martin Smith):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product