我正在尝试在Microsoft SQL Server 2008 R2中使用它:
SET @SomeVar = @SomeOtherVar +
IIF(@SomeBool, 'value when true', 'value when false')
但是我收到了一个错误:
IIF(...)
不是公认的内置函数名称
IIF()
仅与更高版本兼容吗?
我可以使用其他功能吗?
答案 0 :(得分:40)
正如其他人所说,IIF来自SQL 2012.在此之前,您可以使用CASE
:
SET @SomeVar = @SomeOtherVar + CASE
WHEN @SomeBool
THEN 'value when true'
ELSE 'value when false'
END
答案 1 :(得分:8)
SQL Server 2012中的新功能Programmability Enhancements:
SQL Server 2012引入了14个新的内置函数。这些功能通过模拟许多桌面应用程序的表达式语言中的功能,简化了信息工作者的迁移路径。但是,这些功能对于有经验的SQL Server用户也很有用。
...
答案 2 :(得分:4)
IIF
不有效。
IIF
(在我链接到的文档页面上没有链接到以前的版本)。
答案 3 :(得分:4)
如果它在选择范围之外,您也可以使用标准IF语句。
E.g。
DECLARE @Answer VARCHAR(3) = 'YES'
IF @Answer = 'Yes'
BEGIN
--Do Something if true
END
ELSE
-- Do Soemthing if false