嗨,我陷入了我为 Access 编写的以下查询并正常工作。但是当我通过 SQL 2005 运行它时,它给了我错误(关键字 'IS' 附近的语法不正确)。
我遇到过类似的问题,但我的问题没有解决方案。
这是访问查询。
select iif(ISBN IS Null,"1","0") as OK from products
请需要 SQL 2005 版本。
这可能是一个基本查询,但我是 sql 新手。
提前致谢。
嗨,我陷入了我为 Access 编写的以下查询并正常工作。但是当我通过 SQL 2005 运行它时,它给了我错误(关键字 'IS' 附近的语法不正确)。
我遇到过类似的问题,但我的问题没有解决方案。
这是访问查询。
select iif(ISBN IS Null,"1","0") as OK from products
请需要 SQL 2005 版本。
这可能是一个基本查询,但我是 sql 新手。
提前致谢。
改为使用CASE
。
SELECT CASE
WHEN ISBN IS Null
THEN 1
ELSE 0
END AS OK
FROM products
但IIF
如果您使用的是 SQL Server 2012 应该可以工作。
更新
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