我正在尝试在 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 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