3

嗨,我陷入了我为 Access 编写的以下查询并正常工作。但是当我通过 SQL 2005 运行它时,它给了我错误(关键字 'IS' 附近的语法不正确)。

我遇到过类似的问题,但我的问题没有解决方案。

这是访问查询。

select iif(ISBN IS Null,"1","0") as OK from products 

请需要 SQL 2005 版本。

这可能是一个基本查询,但我是 sql 新手。

提前致谢。

4

2 回答 2

4

改为使用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 
于 2013-01-24T11:22:58.643 回答
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
于 2013-01-24T11:23:40.097 回答