澳门太阳娱乐集团官网-太阳集团太阳娱乐登录

coalesce 函数
分类:数据库

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

  COALESCE函数会依次检查输入的参数,重临第多少个不是NULL的参数,独有当传入COALESCE函数的兼具的参数皆以NULL的时候,函数才会重返NULL。举个例子, COALESCE(piName,''),假如变量piName为NULL,那么函数会回去'',不然就能够回去piName本人的值。

  上面包车型客车例子突显了怎么对参数举行检讨何开头化。

  Person表用来存款和储蓄个人的主干新闻,其定义如下:

  表1: Person

  澳门太阳娱乐集团官网 1

  下边是用于向表Person插入数据的囤积进度的参数预处理部分代码:

  SET poGenStatus = 0; SET piName = RTRIM(COALESCE(piName, '')); SET piRank = COALESCE(piRank, 0); -- make sure all required input parameters are not null IF ( piNum IS NULL OR piName = '' OR piAge IS NULL ) THEN SET poGenStatus = 34100; RETURN poGenStatus; END IF;

  表Person中num、name和age都以非空字段。对于name字段,多个空格大家也感到是空值,所以在扩充判别前大家调用RTEnclaveIM和COALESCE对其进展管理,然后选取piName = '',对其开展非空判别;对于Rank字段,大家期望假若客商输入的NULL,大家把它设置成"0",对其我们也运用COALESCE实行初阶化;对于"Age"和"Num" 大家直接使用 IS NULL进行非空判别就能够了。

  假使输入参数未有通过非空推断,我们就对出口参数poGenStatus设置一个鲜明的值(例子中为 34100)告知调用者:输入参数错误。

澳门太阳娱乐集团官网,  下边是对参数开端化法则的一个总括,供我们参照他事他说加以考察:

  1. 输入参数为字符类型,且允许为空的,能够利用COALESCE(inputParameter,'')把NULL调换到'';

  2. 输入类型为整型,且允许为空的,可以应用COALESCE(inputParameter,0),把空调换到0;

  3. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,'')把NULL调换来'',然后判别函数再次来到值是不是为'';

  4. 输入类型为整型,且是非空的,不必要使用COALESCE函数,直接利用IS NULL举办非空判定

 

[摘自]

SQL函数 coalesce

一、coalesce函数简单介绍

功能:

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

回去参数中首先个非null的值。

select isnull(@a,isnull(@b,isnull(@c,null)))
/*当需判定的参数更加的多时,大家的函数表明式就能变的非常复杂*/

语法:

但我们运用coalesce函数,会使此 表达式变的天生丽质,简单明了
select coalesce(@a,@b,@c)
——————————————————————————–

coalesce(参数1,参数2,参数3,...);重临第三个非null的值。


 平时情状下会与Nullif()函数一齐利用。

二、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)

 

本文由澳门太阳娱乐集团官网发布于数据库,转载请注明出处:coalesce 函数

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文