http://www.carrefourstation.com

MSSQL coalesce系统函数简要介绍

  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)

利用nullif函数

CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL
END

declare @name varchar(128卡塔尔(英语:State of Qatar) set @name = 'SET早先值' set @name = (select name from fuzhiTEST where id = 4 卡塔尔(英语:State of Qatar) print @name GO   --正确运维:突显NULL

二、coalesce 应用比方

declare @a int;

 

(2卡塔尔(قطر‎.表明式再次来到多少个值时

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

set @b=0

 

图片 1

 

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

coalesce( expression [ ,...n ] )重回其参数中首先个非空表达式。

declare @name varchar(128卡塔尔国 set @name = 'SELECT开始值' select @name =(select name from fuzhiTEST where id = 4 卡塔尔(英语:State of Qatar) print @name --准确运营:展现NULL

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

大家领略,null与别的数进行别的运算,其结果都极其null,利用那点,大家能够将地点的sql改写为:

select isnull(ssex,'p'卡塔尔(قطر‎ from stu //若ssex列中有NULL值,那么重临p

 

大器晚成、coalesce函数简要介绍

set @a=10

 

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


再使用isnull函数,大家就足以兑现当@b=0的时候,结果重临1的必要了。最后的sql改写如下:

注意:
当第二个表达式为字符串且不可能转变为整数时,若在前边的表明式中有整数,那样的讲话是会报错的。
例如:

declare @name varchar(128) set @name = (select name from fuzhiTEST) GO  --报错:消息 512,级别 16,状态 1,第 2 行        

郑重声明:本文版权归澳门新莆京手机网站所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。