如何在SQL SELECT
语句中执行IF...THEN
?
例如:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
如何在SQL SELECT
语句中执行IF...THEN
?
例如:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
CASE
语句是SQL中最接近IF的语句,在所有版本的SQL Server上都受支持.
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
如果希望结果为布尔值,只需使用CAST
运算符.如果你对int
感到满意,这是可行的:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
条语句可以嵌入到其他CASE
条语句中,甚至可以包含在聚合中.
SQL Server Denali(SQL Server 2012)添加了IIF语句,该语句在access中也可用(由Martin Smith指出):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product