Il CASE
è la più vicina a IF in SQL ed è supportata in tutte le versioni di SQL Server.
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
Devi solo usare il CAST
operatore se si desidera che il risultato sia un valore booleano. Se sei soddisfatto di un int
, funziona:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
le istruzioni possono essere incorporate in altri CASE
dichiarazioni e anche inclusi in aggregati.
SQL Server Denali (SQL Server 2012) aggiunge l'istruzione IIF che è disponibile anche in access (sottolineato da Martin Smith):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product