Sql 2005替代Access查询

时间:2013-01-24 11:21:22

标签: sql sql-server ms-access

您好我被困在以下查询中,我为Access编写并正常工作。但是当我通过SQL 2005运行它时,它会给我一个错误(关键字'IS'附近的语法不正确。)

我遇到了类似的问题,但我的问题没有解决办法。

这是Access查询。

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

请使用SQL 2005版本。

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

提前致谢。

2 个答案:

答案 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