网络数据

当前位置:永利402游戏网站-永利402com官方网站 > 网络数据 > MSSQL coalesce系统函数简介

MSSQL coalesce系统函数简介

来源:http://www.xtcsyb.com 作者:永利402游戏网站-永利402com官方网站 时间:2019-11-06 16:58

转自: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的值。)

本文由永利402游戏网站-永利402com官方网站发布于网络数据,转载请注明出处:MSSQL coalesce系统函数简介

关键词:

上一篇:没有了

下一篇:没有了