El CASE es la declaración más cercana a IF en SQL y es compatible con todas las versiones de SQL Server.
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
Solo necesitas usar el CAST operador si desea que el resultado sea un valor booleano. Si está satisfecho con un int , esto funciona:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE las declaraciones se pueden incrustar en otros CASE declaraciones e incluso incluidas en agregados.
SQL Server Denali (SQL Server 2012) agrega la declaración IIF que también está disponible en el acceso (señalado por Martin Smith):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product