The*_*hod 35 sql sql-server sql-server-2008 sql-server-2008-r2
我想IIF()
在select语句中使用.布尔表达式检查字段值是否等于空字符串.语法是这样的:
SELECT IIF(field = '','ONe action','Another')
Run Code Online (Sandbox Code Playgroud)
我收到错误"语法错误接近="
我尝试了一个简单的测试:
SELECT IIF(2 > 1, 'yes','no')
Run Code Online (Sandbox Code Playgroud)
我正在接受 "syntax errror near >"
这让我相信这IIF
根本不起作用.
我正在使用SQL SERVER 2008 R2,是否需要配置一些东西以允许IIF()工作?有什么关于我缺少的语法吗?我的测试很简单,但仍然会出现语法错误.
任何帮助,将不胜感激.非常感谢!
pod*_*ska 70
如上所述,IIF
是SQL2012功能.
替换IIF
为a CASE
(无论如何SQL 2012都会这样做)
SELECT CASE field WHEN '' THEN 'ONe action' ELSE 'Another' END
Run Code Online (Sandbox Code Playgroud)
Ale*_*der 27
IFF
从SQL Server 2012开始可用.因此请使用"Case".
如果您在SQL Server 2008 中寻找更紧凑的表单(函数而不是大小写),您可以使用:
isnull((select 'yes' where 2 > 1),'no')
Run Code Online (Sandbox Code Playgroud)
代替:
SELECT IIF(2 > 1, 'yes','no')
Run Code Online (Sandbox Code Playgroud)
然后你的陈述将是:
SELECT isnull((select 'yes' where 2 > 1),'no')
归档时间: |
|
查看次数: |
72971 次 |
最近记录: |