SQL Server IIF() 函数
SQL Server IIF()
函数可以在查询中用作 if-else 条件。它会评估一个布尔表达式,如果为真则返回第二个表达式,否则返回第三个表达式。
IIF(boolean_expression, true_value, false_value)
您可以最多嵌套 10 层。
参数
boolean_expression: 一个有效的布尔表达式。如果表达式不是布尔表达式,则会引发语法错误。
true_value: 如果输入的 boolean_expression 评估为 true,则 IIF()
函数返回的值。
false_value: 如果输入的 boolean_expression 评估为 false,则 IIF()
函数返回的值。
返回值
返回一个数据类型的值,其优先级最高,从 true_value 和 false_value 中选择。
注意:IIF()
函数类似于 case 语句。
示例 1
在以下示例中,IIF()
函数评估布尔表达式 10 < 20
。由于 10 小于 20,它返回 'TRUE'。
示例:IIF()
SELECT IIF (10 < 20, 'TRUE' , 'FALSE') AS Result

您可以将 IIF()
函数与表的列一起使用。例如,以下代码将 IIF()
函数与 Employee
表的 DepartmentID
列一起使用。
示例:IIF()
Select FirstName, LastName, IIF(DepartmentID = 10,'Accounts','Others') AS AccDept FROM Employee;

嵌套 IIF()
将 IIF()
与 Employee
表中的 ManagerID
列一起使用。如果员工的 ManagerID
为 1,则该员工是公司的副总裁;如果 ManagerID
为 2,则该员工是总监;否则,该员工是工程师。
示例:IIF()
SELECT IIF(ManagerId = 1, 'VP', IIF (ManagerId = 2, 'Director' , 'Engineer')) AS Designation FROM Employee
