Oracle COALESCE函数
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
转自:http://www.2cto.com/database/201303/193911.html
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;
---------- -------------------- ---------- ----------
---------- -------------------- ---------- ----------
已选择15行。
示例2:模拟返回第一个不为空的值
SQL> select coalesce(null,3+5,4+6) value from dual;
----------
示例3:模拟数据类型不一致的情况
SQL> select COALESCE (null,333,444,'555') from dual;
select COALESCE (null,333,444,'555') from dual
第 1 行出现错误:
ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR
转自:http://www.2cto.com/database/201303/193911.html