Le CASE
est la plus proche de IF dans SQL et est prise en charge sur toutes les versions de SQL Server.
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
Il vous suffit d'utiliser le CAST
opérateur si vous voulez que le résultat soit une valeur booléenne. Si vous êtes satisfait d'un int
, cela fonctionne :
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
les instructions peuvent être incorporées dans d'autres CASE
relevés et même inclus dans les agrégats.
SQL Server Denali (SQL Server 2012) ajoute la déclaration IIF qui est également disponible en accès (indiqué par Martin Smith) :
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product