频道栏目
首页 > 资讯 > Oracle > 正文

Oracle COALESCE函数

17-07-21        来源:[db:作者]  
收藏   我要投稿

Oracle COALESCE函数

Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。

注意:所有表达式必须为同一类型或者能转换成同一类型。

示例一:在emp表中给comm列为空的人员设为200

[sql] view plain copy

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] view plain copy

SQL> select coalesce(null,3+5,4+6) value from dual;

VALUE

----------

8

示例3:模拟数据类型不一致的情况[sql] view plain copy

SQL> select COALESCE (null,333,444,'555') from dual;

select COALESCE (null,333,444,'555') from dual

*

第 1 行出现错误:

ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR[sql] view plain copy

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] view plain copy

SQL> select coalesce(null,3+5,4+6) value from dual;

VALUE

----------

8

示例3:模拟数据类型不一致的情况[sql] view plain copy

SQL> select COALESCE (null,333,444,'555') from dual;

select COALESCE (null,333,444,'555') from dual

*

第 1 行出现错误:

ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 CHAR

相关TAG标签
上一篇:Buildofinstancexxxaborted:BlockDeviceMappingisInvalid.执行块设备映射失败
下一篇:docker安装后的一些设置
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站