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

postgre数据库中某个视图建立时使用: '002'::text || COALESCE(parent_id, ''::character varying)::text AS parent_id

把某棵树的parent_id置为002或者002+数据表.parent_id(字段)

首先,建一个视图:

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

coalesce函数的用法相关推荐

  1. Oracle中coalesce函数的用法

    学习了几天教主的书,今天看到coalesce函数,功能很强大啊! coalesce函数的参数是列,结果是取出第一个不为空的列的数据. 首先,建一个视图: CREATE OR REPLACE VIEW ...

  2. Oracle数据库之coalesce函数的用法

    COALESCE()函数 语法:COALESCE(表达式1,表达式2,表达式3-表达式n) 表达式1:字符串或者字段 表达式2:字符串或者字段 . . . 表达式n:字符串或者字段 案例1: 表达式必 ...

  3. SQL Server中COALESCE函数的用法

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

  4. coalesce(coalesce函数的用法)

    oracle COALESCE()怎么使用 COALESCE函数在很多情况下就成为替代CASE语句的一条捷径,COALESCE的格式如下: COALESCE (expression_1, expres ...

  5. MYSQL中coalesce函数的用法

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

  6. oracle+nvlif函数,Oracle中的NVL()、NVL2()、NULLIF()、Coalesce()函数

    大家先来看看下面这道简单的题目: 1.  TEST表包含两个列,TESTCOL定义为数据类型NUMBER(10),TESTCOL_2定义为数据类型VARCHAR2(10).在Oracle中发出下列语句 ...

  7. COALESCE函数

    COALESCE函数 COALESCE()函数 MYSQL用法: SQLServer用法 Oracle 用法一 Oracle用法二 COALESCE()函数 主流数据库系统都支持COALESCE()函 ...

  8. Mysql coalesce()函数认识和用法

    Mysql coalesce()函数认识和用法 coalesce()解释:返回参数中的第一个非空表达式(从左向右):  鉴于在 mysql中没有nvl()函数, 我们用coalesce()来代替.   ...

  9. sql的coalesce函数用法

    介绍 coalesce函数是sql里面极其实用的一个函数,具体用法如下: SELECT coalesce(exp1,exp2,...) as info FROM table1 当exp1为NULL时, ...

最新文章

  1. 论文阅读笔记四十:Deformable ConvNets v2: More Deformable, Better Results(CVPR2018)
  2. 敏捷开发原则与实践(二)
  3. 安装ipvsadm 用make编译出现错误解决方法
  4. easyexcel 动态列_easyexcel动态表头列导出SequenceDiagram 阅读源码事半功倍
  5. 工作214:结构 vue操作一个很有意思的报错 [Vue warn]: You may have an infinite update loop in a component
  6. 新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  7. 130、 Android OkHttp完全解析(转载)
  8. 面试官:你知道Redis得持久化机制吗?
  9. SPRING IN ACTION 第4版笔记-第二章-004-Bean是否单例
  10. P1394 山上的国度
  11. Wi-Fi 还是蜂窝?搞物联网怎么选择连接协议?
  12. 常用的计算机显示器按其显像原理可分为什么,计算机组装与维护的试卷C答案...
  13. @query传参_前端框架vue中query和params传参
  14. springMVC之自定义视图
  15. 【机器学习】(七)马尔可夫链、马尔可夫随机场、条件随机场
  16. 什么是数位板? 数位板,又名绘图板、绘画板、手绘板等等,是计算机输入设备的一种,通常是由一块板子和一支压感笔组成,它和手写板等作为非常规的输入产品相类似,都针对一定的使用群体。 与手写板所不同的是
  17. 阿里巴巴大数据竞赛(2014年3月10日到11月)
  18. 第七届区块链全球峰会 | 谢晗剑:区块链的抽象与演进
  19. 计算机考研408复试(面试)问题——数据结构
  20. 如何解决ubuntu vi编辑器上下箭头变成ABCD的问题

热门文章

  1. 四层PCB核心板制作3——层叠管理
  2. docker 构建推送到阿里云仓库失败
  3. uniapp 清除文件缓存
  4. C++动态分配内存new delete
  5. Mac搭建GO开发环境
  6. 刀塔OMG塔防1.23单机版使用方法
  7. mysql 设置所有ip均可访问(windows版本设置)
  8. 学生成绩管理系统完整版
  9. 天地图 android 接口,天地图嵌入到Android手机中
  10. 弘辽科技:拼多多这样提升销量才能加权