CASE
изразът е най-близък до IF в SQL и се поддържа във всички версии на SQL Server.
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, който също е наличен в достъп (посочено от Мартин Смит):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product