oracle函数nvl,nvl2的区别,nullif函数,coalesce函数

在oracle中用nvl和nvl2函数来解决为空的情况,例如,如果奖金为空,则为它指定一个数。也就是nvl(奖金字段,指定的奖金),但是两个的类型要一致。

1)nvl()函数

SQL> select comm,nvl(comm,111) from emp;如果comm为空,则将它设置为111;

2)nvl2()函数

SQL> select comm,nvl2(comm,666,555)from emp;如果comm不为空返回666,为空返回555,如果第二个参数和第三个参数类型不同,则,第三个参数会自动转为第二个参数的类型。

nvl和nvl2都可以用来处理字段为空的情况,nvl2比nvl的功能更加强大,而且nvl的两个参数类型必须一致,如果不一致则会出现错误,而nvl2的参数可以不同,如果第二个参数和第三个参数类型不同,则,第三个参数会自动转为第二个参数的类型。

nullif()函数用于判断两个字段是否相等,相同返回空值,不同返回第一个参数。

SQL> select nullif(1,1)from dual;

-----------

3)NULLIF(1,1)

SQL> select nullif(1,0)from dual;

NULLIF(1,0)
-----------
1

 4)coalesce()函数

  coalesce()函数返回第一个不为空的值,例如

SQL> select coalesce(null,1,4) from dual;

COALESCE(NULL,1,4)
------------------
1

SQL> select coalesce(null,null,4) from dual;

COALESCE(NULL,NULL,4)
---------------------
4

SQL> select coalesce(1,null,4) from dual;

COALESCE(1,NULL,4)
------------------
1

转载于:https://www.cnblogs.com/jasonboren/p/10900757.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值