SQL Server 2008 IIF 语句似乎未启用

标签 sql sql-server sql-server-2008 sql-server-2008-r2

我尝试在 select 语句中使用 IIF()。 bool 表达式检查字段值是否等于空字符串。语法如下:

SELECT IIF(field = '','ONe action','Another')

我收到错误“syntax error close = =”

我尝试了一个简单的测试:

SELECT IIF(2 > 1, 'yes','no')

我收到“syntax errror close >”

这让我相信 IIF 根本不起作用。

我使用的是 SQL SERVER 2008 R2,是否需要配置某些内容才能允许 IIF() 工作?我缺少什么语法吗?我的测试很简单,但我仍然遇到语法错误。

如有任何帮助,我们将不胜感激。非常感谢!

最佳答案

如上所述,IIF 是 SQL2012 的一项功能。

将您的 IIF 替换为 CASE(这就是 SQL 2012 无论如何都会做的事情)

 SELECT CASE field WHEN '' THEN 'ONe action' ELSE 'Another' END

关于SQL Server 2008 IIF 语句似乎未启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11540753/

相关文章:

SQL:键值:列中的值?

mysql - 如何在 MySQL 中限制查询中的字段

sql - 解析 XML 以构建动态查询

sql - 在 WHERE 中引用 ROW_NUMBER()

sql-server-2008 - sql server 2008 中的地理数据类型有多好?

c# - Npgsql/PostgreSQL : "function does not exist" error message when it does

sql - 获取 SQL 中两个日期之间月份的开始日期和结束日期?

tsql - 如何将 CTE 与 FOR XML 子句结合使用?

mysql - 查询保留未减去的元组

sql-server - 运行 node-mssql 查询时出错