ORACLE内置函数大全补充(为空处理函数)

来源:互联网 发布:众云数据平台 编辑:程序博客网 时间:2024/06/15 23:04

一下函数式支持返回值类型 :
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

1.COALESCE()
PS : COALESCE()函数是ASNI标准的SQL函数,MS SQL 和 Oracle 都可以用
用法 :
Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,…,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。表达式的类型需要一致

如在 oracle 内置表 emp 中 , 如果 comm 字段值为空 , 则设置 new_comm 为200 select a.empno,a.ename,comm,coalesce(comm,200)new_comm from emp a; EMPNO ENAME                      COMM         NEW_COMM  ---------- -------------------- ---------- ----------        7369 SMITH                                  200        7499 ALLEN                 300              300        7521 WARD                  500              500        7566 JONES                                  200        7654 MARTIN                1400            1400        7698 BLAKE                                  200        7782 CLARK                                  200        7788 SCOTT                                  200        7839 KING                                   200        7844 TURNER                 0               0        7876 ADAMS                                  200  

2.NVL(exp1,exp2)
如果 exp1 是空值 , 则返回 exp2 的值 , 如果 exp1 不是空值 , 则返回它本身 ; 注意表达式的值类型要一致
用法:

select ename,NVL(comm, -1) from emp;ENAME       NVL(COMM,-1)------- ----SMITH       -1ALLEN       300WARD        500JONES        -1MARTIN      1400BLAKE       -1FORD        -1MILLER       -1

3.NVL2(exp1,exp2,exp3)
如果 exp1 表示的值为空 , 则返回 exp2 的值 , 反之则返回 exp3 的值
用法:

elect ename,NVL2(comm,-1,1) from emp;ENAME    NVL2(COMM,-1,1)------- -----SMITH        1ALLEN       -1WARD        -1JONES        1MARTIN      -1BLAKE        1CLARK        1SCOTT        1
原创粉丝点击