SQL SERVER 2012中新增了IIF函数,这个函数在VB或是ACCESS中是存在的。
例如:
- select iif(30>45,'对','错') as 结果
- /*
- 结果
- ----
- 错
- */
- select iif(null=null,'对','错') as 结果
- /*
- 结果
- ----
- 错
- */
- select iif(null is null,'对','错') as 结果
- /*
- 结果
- ----
- 对
- */
这让我想起 SQLSERVER 之前有个函数叫 NULLIF ,如果两个指定的表达式相等,则返回空值。
- declare @i int
- set @i=null
- select NULLIF(@i,null)
- /*
- NULL
- */
NULLIF 上面返回 NULL ,并不说明两者相等,而是两者不相等时,返回前者,而前者的 @i 恰巧为 NULL 造成的。