首页数据库 › SQL中select与set的界别-转发

SQL中select与set的界别-转发

转自: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卡塔尔(英语:State of Qatar), @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

新萄京娱乐网址2492777,(2卡塔尔.表明式重回四个值时

二、coalesce 应用比如

运维结果:null

 

在印证那黄金年代项前大家先创设四个要用到的表,并对其赋值,代码如下:

转载本站文章请注明出处:新萄京娱乐网址2492777 http://www.cdhbjs.com/?p=5094

上一篇:

下一篇:

相关文章