学习了几天教主的书,今天看到coalesce函数,功能很强大啊!

coalesce函数的参数是列,结果是取出第一个不为空的列的数据。

首先,建一个视图:

CREATE OR REPLACE VIEW v AS SELECT NULL AS c1,NULL AS c2,1 AS c3,NULL AS c4,2 AS c5,NULL AS c6 FROM dual UNION ALL SELECT NULL AS c1,NULL AS c2,NULL AS c3,3 AS c4,NULL AS c5,2 AS c6 FROM dual;

查看视图结果:

使用coalesce函数查结果:

SELECT COALESCE (c1,c2,c3,c4,c5,c6) AS c FROM v;

结果竟是:

难道coalesce函数不支持number类型?带着这个疑问,给转换一下,结果:

SELECT COALESCE (c1,c2,to_char(c3),to_char(c4),to_char(c5),to_char(c6)) AS c FROM v;

好像是真的,那么对date类型的支持呢?试一试

CREATE OR REPLACE VIEW v AS
SELECT to_date('20150101','YYYYMMDD') AS c1,NULL AS c2,1 AS c3,NULL AS c4,2 AS c5,NULL AS c6 FROM dual
UNION ALL
SELECT NULL AS c1,NULL AS c2,NULL AS c3,3 AS c4,NULL AS c5,2 AS c6 FROM dual;

结果竟然:

到这里就不禁要想,应该不是不支持某种数据类型,而是把第一列的数据类型,作为整个函数的数据类型了。

这样试试就行了

最后,既然coalesce函数里面是列,那么用*代表所有列行不行呢?

显然是不行的。

总结:

1、coalesce函数是用来获取第一个不为空的列的值

2、coalesce函数里面的数据类型,必须全部都跟第一列的数据类型一致

3、CREATE OR REPLACE VIEW v AS SELECT NULL AS c FROM dual;这样建立的视图,列c的数据类型是char。

Oracle中coalesce函数的用法相关推荐

  1. oracle中的to_number,Oracle中to_number()函数的用法

    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...

  2. Oracle中to_char()函数的用法

    Oracle中to_char()函数的用法 日期转换: to_char(date,'格式') select to_date('2005-01-01 ','yyyy-MM-dd') from dual; ...

  3. oracle to_char函数格式,oracle 中to_char函数的用法

    一.日期格式转换 to_char(date,'格式'); select to_date('2005-01-01 ','yyyy-MM-dd') from dual; select to_char(sy ...

  4. Oracle中add_months()函数的用法

    Oracle中add_months()函数的用法 查询当前时间n个月以前的时间: select add_months(sysdate,-n) from dual; 查询当前时间n个月之后的时间: se ...

  5. SQL Server中COALESCE函数的用法

    在SQL Server中COALESCE函数,会返回其参数中第一个不为NULL的参数,效果如下: SELECT COALESCE(NULL,NULL,N'A',NULL,NULL) 结果: SELEC ...

  6. oracle trunc函数 q,oracle中trunc函数的用法

    TRUNC函数返回以指定元素格式截去一部分的日期值. 其具体的语法格式如下: TRUNC(date,[fmt]) 其中: date 为必要参数,是输入的一个日期值 fmt 参数可忽略,是日期格式,用以 ...

  7. oracle 中 to_date 函数的用法

    常犯错的使用方法. to_date('2019-08-12 22:05:','yyyy-MM-dd HH24:mm:ss') Oracle中会引起错误:"ORA 01810 格式代码出现两次 ...

  8. oracle的sql的substr用法,oracle中substr函数的用法(sqlserver right)

    oracle: 语法: substr(string,a,b): a:从第几位开始,第一位a=1,倒数第三位(即sqlserver中的right)a=-3 b:取几个字符 substr('This is ...

  9. MYSQL中coalesce函数的用法

    我先说目的:就是返回集合中第一个不为空的值,判断集合中的值都为空用的,下面看例子 coalesce():返回参数中的第一个非空表达式(从左向右依次类推): 例如: 1 2 3 4 5 select c ...

最新文章

  1. wireless(二维数组前缀和)
  2. FFmpeg windows软件开发环境搭建
  3. 使用 EasyBCD 安装Ubuntu 14.04 Error 15: file not found错误的解决方法
  4. mvc @html.checkbox,MVC - @Html.CheckBoxFor
  5. UPS电池延时估算方法及配置表,ups配置不再难
  6. Java学完后可以从事的工作岗位分享
  7. 手把手教你做关键词匹配项目(搜索引擎)---- 第二十一天
  8. EqualLogic全攻略视频[(四)高级管理]
  9. 腾讯外包php 面试,一道腾讯PHP程序员面试题,看下吧里有多少人做的出
  10. 多线程同步 通过实现Runnable的示例
  11. linux常用命令总结-第一次考试
  12. 第 22 章 Beta
  13. eclipse找不到arm-linux-gcc,使用 Eclipse 和 ARM GCC 搭建 STM32 开发环境
  14. Python XML解析(转载)
  15. 【SQL Server】用SQL命令建立数据库和表
  16. TBase集群安装配置
  17. 匈牙利算法寻找最大匹配
  18. 中国姓氏人口排名及分布
  19. 帝国CMS系统标签e:loop调用的附加SQL条件和排序参数
  20. python基础知识(五)---集合set

热门文章

  1. 导航条加载.ico的logo图标的方式
  2. 高视角!如何认识微积分方法与原理?
  3. TCP和UDP的实现
  4. 蓝桥杯基础练习---特殊数字
  5. JAVA 网络编程流相关代码(UDP和TCP)
  6. 不吹不黑,思购甄选现在还能玩吗?
  7. Brave浏览器月活超千万,小费打赏功能你会用了吗?
  8. 数据结构C++实现(顺序栈) 青岛大学王卓老师
  9. 教你怎样用最少的钱拍出最美的婚纱
  10. DICOM:开源DICOM服务框架DCM4CHE 安装