O
CASE
A instrução é a mais próxima de IF no SQL e tem suporte em todas as versões do SQL Server. SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
Você só precisa usar o
CAST
operador se você quiser o resultado como um valor booleano. Se você está satisfeito com um int
, isso funciona:SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
instruções podem ser incorporadas em outro CASE
declarações e até mesmo incluídos em agregados. O SQL Server Denali (SQL Server 2012) adiciona a instrução IIF que também está disponível no acesso (apontado por Martin Smith):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product