当前位置: 56net亚洲必嬴 > 数据库 > 正文

必嬴56netSQL中select与set的不一致-转发

时间:2019-10-24 18:29来源:数据库
转自:http://www.maomao365.com/?p=4390 利用 nullif函数 。 coalesce( expression [ ,...n ] )再次来到其参数中第三个非空表明式。 下表列出SET 与 SELECT 的界别 黄金时代、coalesce函数简单介绍 nullif函数

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

利用nullif函数

coalesce( expression [ ,...n ] )再次来到其参数中第三个非空表明式。

下表列出 SET 与 SELECT 的界别

黄金时代、coalesce函数简单介绍

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

 

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

coalesce 系统函数,比ISNULL越来越强硬,更方便人民群众的系统函数,
coalesce能够选拔七个参数,重返最侧面不为NULL的参数,当有着参数都为空时,则赶回NULL
coalesce是最优isnull写法应用方案
必嬴56net,以前笔者们选取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

 

在验证这后生可畏项前大家先创立三个要用到的表,并对其赋值,代码如下:

编辑:数据库 本文来源:必嬴56netSQL中select与set的不一致-转发

关键词:

  • 上一篇:没有了
  • 下一篇:没有了