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