您好我被困在以下查询中,我为Access编写并正常工作。但是当我通过SQL 2005运行它时,它会给我一个错误(关键字'IS'附近的语法不正确。)
我遇到了类似的问题,但我的问题没有解决办法。
这是Access查询。
select iif(ISBN IS Null,"1","0") as OK from products
请使用SQL 2005版本。
这可能是一个基本的查询,但我是sql的新手。
提前致谢。
答案 0 :(得分:4)
改为使用CASE
。
SELECT CASE
WHEN ISBN IS Null
THEN 1
ELSE 0
END AS OK
FROM products
但是IIF
should work if you are using SQL Server 2012。
<强>更新强>
SELECT CASE
WHEN expression1
THEN 0
ELSE
CASE
WHEN expression2
THEN 2
ELSE 3
END
END AS OK
FROM products
答案 1 :(得分:1)
您需要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