SQLServer2012新增了iif函数,该函数是一个逻辑函数,用于根据条件返回两个可能的值之一。它的语法如下:
IIF ( boolean_expression, true_value, false_value )
其中,boolean_expression
是一个逻辑表达式,如果为真,则返回true_value
,否则返回false_value
。
以下是一些使用IIF
函数的示例:
返回年龄是否大于等于18岁:
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([name] nvarchar(22),[age] int)
Insert #T
select N'张三',17 union all
select N'李四',18 union all
select N'王五',19
Go
--测试数据结束
SELECT IIF(age >= 18, '成年人', '未成年人') AS is_adult FROM #T;
结果:
需要注意的是,IIF
函数在 SQL Server 2012 及以上版本中才被引入。在较早的版本中,可以使用CASE
语句来实现类似的功能。另外,IIF
函数不是标准的 SQL 函数,在其他数据库管理系统中可能不被支持。