如果条件为 TRUE,SQL Server (Transact-SQL) IIF() 函数将返回值 value_if_true;如果条件为 FALSE,则返回值 value_if_false。
它类似于编程语言的中的IF ELSE语句。
语法
IIF(condition, value_if_true, value_if_false)
参数
condition | 必填。 指定要测试的值。 |
value_if_true | 必填。 指定条件为TRUE时返回的值。 |
value_if_false | 必填。 指定条件为FALSE时返回的值。 |
返回值
返回基于条件的值。
示例 1:
下面的示例显示了IIF()函数的用法。
SELECT IIF(100>200, 'TRUE', 'FALSE');
Result: 'FALSE'
SELECT IIF(100<200, 'T', 'F');
Result: 'T'
SELECT IIF(100<200, 500, 600);
Result: 500
示例 2:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | x | y |
---|---|---|
Data 1 | 10 | 8 |
Data 2 | 20 | 22 |
Data 3 | 30 | 31 |
Data 4 | 40 | 39 |
Data 5 | 50 | 53 |
以下查询用于比较列x和y的记录。根据比较,记录结果。
SELECT *, IIF(x > y, 'TRUE', 'FALSE') AS IIF_Value FROM Sample;
这将产生如下所示的结果:
Data | x | y | IIF_Value |
---|---|---|---|
Data 1 | 10 | 8 | TRUE |
Data 2 | 20 | 22 | FALSE |
Data 3 | 30 | 31 | FALSE |
Data 4 | 40 | 39 | TRUE |
Data 5 | 50 | 53 | FALSE |