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