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
最新文章
- Android消息处理
- 快速排名 让人疯狂的黑帽seo技术
- SQLServer DBA 三十问(加强版)
- Win7版IE10浏览器正式版官方下载地址
- C/C++中产生随机数
- Commons-logging + Log4j
- Ubuntu 14.04为浏览器添加Flash插件
- 9个Console控制台命令(转载)
- js的eval函数
- HTML学习笔记 基础标签及css引用案例 第一节 (原创)参考使用表
- Codeforces831A Unimodal Array
- 函数, arguments对象, eval,静态成员和实例成员
- Spark大数据针对性问题。
- [ERROR] InnoDB: Trying to access page number 7 in space 957, space name XXX which is outside the tablespace bounds
- [Android] 修图工具Draw9patch使用小结(附ubuntu快捷截图方法)
- 解决Hsqldb指针只能单向移动,不能回滚问题(.first())
- POJ - 3436 ACM Computer Factory(最大流)
- Number of dynamic partitions exceeded hive.exec.max.dynamic.partitions.pernode
- SVM总结(转)
- .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7