SQL SERVER 2012新增函数之逻辑函数IIF

zhangdonghang 2019-04-09

前言

SQL SERVER 2012中新增了IIF函数,这个函数在VB或是ACCESS中是存在的。感兴趣的朋友们下面来一起学习学习吧。

格式如下

iif(布尔表达式,value1,value2)

也就是说如果表达式成立,那么就返回value1,如果不成立,就返回value2.

示例如下

例如:

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

相关推荐