转自:http://www.maomao365.com/?p=4390

利用nullif函数

coalesce( expression [ ,…n ] )重返其参数中第贰个非空表明式。

下表列出
SET 与 SELECT 的分别

一、coalesce函数简单介绍

nullif函数有四个参数,定义如下:

 

  SELECT SET
同时对多个变量同时赋值时 支持 不支持
表达式返回多个值时 将返回的最后一个值赋给变量 出错
表达式未返回值时 变量保持原值 变量被赋null值

coalesce 系统函数,比ISNULL更加强有力,更有益于的连串函数,
coalesce能够收起三个参数,再次来到最左侧不为NULL的参数,当有着参数都为空时,则赶回NULL
coalesce是最优isnull写法技术方案
在此此前我们应用isnull对两列或多列数据进行为空再次来到时候,要求频仍行使isnull函数
—————————————————————————-
例:
declare @a varchar(10),@b varchar(10),@c varchar(10)
当@a为null时,大家查阅@b是或不是为NULL,不为null,则赶回@b ,不然查看@c
不为NULL,则赶回@c ,不然重返NULL

NULLIF( expression , expression )

Select coalesce(null,null,’1′,’2′) //结果为 1

(1).同临时间对五个变量同有时间赋值时

select isnull(@a,isnull(@b,isnull(@c,null)))
/*当需判别的参数愈来愈多时,大家的函数表达式就可以变的要命复杂*/

其意义正是:假如八个内定的表明式相等,就回来null值。

coalesce(expression1**,**…n) 与此 case函数等效:

declare @a varchar(128), @b varchar(128)
SET @a=’ABC’,@b=’EFG’ GO –报错:音讯 102,品级 15,状态
1,第 3 行 ‘,’ 相邻有语法错误。

但大家运用coalesce函数,会使此 表明式变的巧妙,老妪能解
select coalesce(@a,@b,@c)
——————————————————————————–

看一演示:

 

declare @a varchar(128), @b varchar(128) SELECT @a=’ABC’,@b=’EFG’ GO –正确运转


select nullif(0,0)

CASE
WHEN (expression1 IS NOT NULL) THEN expression1

WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL
END

(2).表明式再次来到四个值时

二、coalesce 应用比方

运维结果:null

 

在证实这一项前大家先成立叁个要用到的表,并对其赋值,代码如下: