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造成的。