我试图在Microsoft SQL Server 2008 R2使用此:
SET @SomeVar = @SomeOtherVar +
IIF(@SomeBool, 'value when true', 'value when false')
但是,我得到一个错误:
IIF(...)
是无法识别的内置函数名称
是IIF()
只用最新版本的兼容?
是否有备用的功能可以使用吗?
我试图在Microsoft SQL Server 2008 R2使用此:
SET @SomeVar = @SomeOtherVar +
IIF(@SomeBool, 'value when true', 'value when false')
但是,我得到一个错误:
IIF(...)
是无法识别的内置函数名称
是IIF()
只用最新版本的兼容?
是否有备用的功能可以使用吗?
正如其他人所说,IIF来自SQL 2012年那之前,你可以使用CASE
:
SET @SomeVar = @SomeOtherVar + CASE
WHEN @SomeBool
THEN 'value when true'
ELSE 'value when false'
END
什么是新的SQL Server 2012中, 可编程性增强功能 :
SQL Server 2012中引入了14个新的内置功能。 这些功能通过模拟了在许多桌面应用程序的表达式语言中的功能简化迁移信息工作者的路径。 然而,这些功能也将到SQL Server的有经验的用户非常有用。
...
- IIF(事务处理SQL)
IIF
是无效的SQL Server 2008 R2和之前的任何版本。
IIF
在SQL Server 2012中引入的(没有联系到以前的版本我已经链接到文档页面)。
你也可以使用IF语句的标准,如果是外选择。
如
DECLARE @Answer VARCHAR(3) = 'YES'
IF @Answer = 'Yes'
BEGIN
--Do Something if true
END
ELSE
-- Do Soemthing if false