coalesce系统函数简单介绍,除零操作

coalesce系统函数简单介绍,除零操作

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

利用nullif函数

意气风发、coalesce函数简要介绍

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

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 isnull(@a,isnull(@b,isnull(@c,null)))
/*当需决断的参数更加的多时,大家的函数表明式就能变的要命复杂*/

其成效正是:若是八个钦命的表达式相等,就回来null值。

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

看生龙活虎示范:


select nullif(0,0)

二、coalesce 应用比方

运转结果:null

 

咱俩掌握,null与别的数举办任何运算,其结果都等于null,利用这一点,大家得以将方面包车型地铁sql改写为:

  declare @a varchar(10),@b varchar(10),@c varchar(10),@d int 

 select coalesce(@a,@b,@c)

 set @a ='g'
 select coalesce(@a,@b,@c)

 set @a =null 
 set @b ='g2'
 set @c ='g3'
 select coalesce(@a,@b,@c)

 set @a =null
 set @b =null
 set @c =null 
 set @d =100

 select coalesce(@a,@b,@c,@d)

declare @a int;

 

declare @b int;

set @a=10

set @b=0

select @a/nullif(@b,0)

其运维结果自然为null了。

再利用isnull函数,大家就足以兑现当@b=0的时候,结果回到1的需求了。最后的sql改写如下:

declare @a int;

declare @b int;

set @a=10

set @b=0

select isnull(@a/nullif(@b,0),1)

OK,两种艺术介绍完结,相对于艺术意气风发,笔者更推荐大家利用方法二,因为方法二的代码更简省。

(假设有相爱的人对isnull函数不打听的话,这里能够解释一下。

isnull的概念如下:

isnull(参数1,参数2)

其功用正是,当参数1等于null时,就回去参数2的值。)

admin

网站地图xml地图