在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

最新文章

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

热门文章

  1. python3 set集合,以及字典,使用技巧
  2. javascript学习笔记之DOM
  3. create-react-app创建,ie11不兼容
  4. .item布局设置分割线
  5. springboot 项目中在普通类中调用dao层的mapper 出现空指针异常
  6. 第六周课程总结&实验报告(四)
  7. 方差分析(python代码实现)
  8. flutter GestureDetector点击区域
  9. jqGrid细节备注—jqGrid中自定义格式,URL格式
  10. web开发(七) JSTL标签库