你好,我陷入了以下查询的困境,这个查询是我为Access编写的,并且有效地工作。但是当我通过SQL 2005运行它时,它会给我一个错误提示 (关键字“IS”附近的语法不正确)。
我已经查阅了类似的问题,但是没有解决我的问题。
以下是Access查询。
select iif(ISBN IS Null,"1","0") as OK from products
请提供 SQL 2005 版本。
这可能是一个基本的查询,但我对 SQL 不熟悉。
提前感谢。
你好,我陷入了以下查询的困境,这个查询是我为Access编写的,并且有效地工作。但是当我通过SQL 2005运行它时,它会给我一个错误提示 (关键字“IS”附近的语法不正确)。
我已经查阅了类似的问题,但是没有解决我的问题。
以下是Access查询。
select iif(ISBN IS Null,"1","0") as OK from products
CASE
代替。SELECT CASE
WHEN ISBN IS Null
THEN 1
ELSE 0
END AS OK
FROM products
但是如果你正在使用SQL Server 2012,IIF
应该可以工作。
更新
SELECT CASE
WHEN expression1
THEN 0
ELSE
CASE
WHEN expression2
THEN 2
ELSE 3
END
END AS OK
FROM products
您需要使用CASE
表达式来替换IIf()
。SQL Server 2005没有IIF()
函数:
select case when ISBN is null then 1 else 0 end as OK
from products
IIF()
语句,那么可以将它们嵌套:select
case
when ISBN is null
then 1
else
case when yourCol = "Value"
then 2
else 3
end
end as OK
from products