Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。
注意:所有表达式必须为同一类型或者能转换成同一类型。
示例一:在emp表中给comm列为空的人员设为200
SQL> 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
EMPNO ENAME COMM NEW_COMM
---------- -------------------- ---------- ----------
7900 JAMES 200
7902 FORD 200
7934 MILLER 200
8888 xiangyc 888.88 888.88
已选择15行。
示例2:模拟返回第一个不为空的值
SQL> select coalesce(null,3+5,4+6) value from dual;
VALUE
----------
8
示例3:模拟数据类型不一致的情况
SQL> select COALESCE (null,333,444,'555') from dual;
select COALESCE (null,333,444,'555') from dual
*
第 1 行出现错误:
ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR