sql:函数:COALESCE()与isNull()函数介绍

目录

COALESCE()函数

ISNULL()


COALESCE()函数

COALESCE ( expression,value1,value2……,valuen) ;

COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。

如果expression不为空值则返回expression;否则判断value1是否是空值,

如果value1不为空值则返回value1;否则判断value2是否是空值,

如果value2不为空值则返回value2;……以此类推,
如果所有的表达式都为空值,则返回NULL。

例子:

我们将使用COALESCE()函数完成下面的功能,返回人员的“重要日期”:

如果出生日期不为空则将出生日期做为“重要日期”,如果出生日期为空则判断注册日期是否为空,如果注册日期不为空则将注册日期做为“重要日期”,如果注册日期也为空则将“2008年8月8日”做为“重要日期”。实现此功能的SQL语句如下:

SELECT FName,FBirthDay,FRegDay, 
COALESCE(FBirthDay,FRegDay,'2008-08-08')  AS ImportDay  
FROM T_Person

ISNULL()

SQL Server中的isnull()函数:

   isnull(value1,value2)

        1、value1与value2的数据类型必须一致。

        2、如果value1的值不为null,结果返回value1。

        3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。

 如果在select中就是isnull可以判断是否是null,如果是给个默认值,isnull("字段名","设定默认的数据")

      例如:select isnull(分数,0) from xuesheng where name='张三'  在表xuesheng中,字段分数如果为空,结果输出0。如果不为空,输出字段分数的值。

在sql server中字段为空的写法,select name  from A where name is null/is not null  。而不是name=null、name=' '。
 

 MySQL:

1.isnull(exper) 判断exper是否为空,是则返回1,否则返回0

2.ifnull(exper1,exper2)判断exper1是否为空,是则用exper2代替

3.nullif(exper1,exper2)如果expr1= expr2 成立,那么返回值为NULL,否则返回值为  expr1。
 

Oracle:

1、nvl(value1,value2)  

这个函数的意思是如果value1的值为null,那么函数返回value2的值  ,如果value1不为空,那么就返回value1的值。

需要注意的是value1和value2要保持字段类型相同。

2、nvl2(value1,value2,value3)  

这个函数的意思是如果value1的值为null 函数返回value3   否则函数返回value2   也就是说函数永远不会返回value1

注意的是参数value2 value3可以是除了LONG类型之外的任意数据类型。

3、NULLIF函数的格式如下:

NULLIF(expr1,expr2),含义是:如果第一个参数的值等于第二个参数的值则返回空,否则返回第一个值。

补充:

MYSQL: 
  IFNULL(expression,value) 
MSSQLServer: 
  ISNULL(expression,value) 
Oracle: 
  NVL(expression,value) 

这几个函数的功能和COALESCE(expression,value)是等价的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值