介绍

coalesce函数是sql里面极其实用的一个函数,具体用法如下:

SELECT coalesce(exp1,exp2,...) as info
FROM table1

exp1NULL时,计算exp2,当exp2为空时,计算exp3,……
一直到计算到第一个不为NULLexp,如果都为NULL,则返回NULL
ps:这里的表达式也当然可以是不同的列

UNION等价

当只有两个表达式时,可以用另一种方式来等价:

SELECT exp1 as a
FROM table1
WHERE exp1 is not null
UNION
SELECT exp2 as a
FROM table1
WHERE exp1 is null

但是这样就显得很绕,很麻烦,而且表达式一多,就变得很复杂了。

应用

一个常用的场景是:将多列数据(有优先级)用不同的计算逻辑合并为一列数据指标

例如,一个表格里面包含了每日的生产量生产速度两个属性。但是有些行只有生产量,有的行只有生产速度,有的则两个都有,如果需要取出所有行的生产量,那么就可以优先第一列,若为空则利用生产速度估算日产量来达到目的:

SELECT coalesce(daily_data,hourly_data*8) as daily_info
FROM table1

sql的coalesce函数用法相关推荐

  1. mysql coalesce函数用法,SQL Server COALESCE函数详解及实例

    SQL Server COALESCE函数详解 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止 ...

  2. PL/SQL表---table()函数用法

    http://www.itpub.net/thread-617298-1-1.html PL/SQL表---table()函数用法: 利用table()函数,我们可以将PL/SQL返回的结果集代替ta ...

  3. SQL中row_number函数用法

    row_number函数用法 1.函数讲解 2.LeetCode实战 1.函数讲解 语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) ...

  4. coalesce函数用法php,如何使用Oracle中的 COALESCE 函数

    欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 数据库应用软件很多时候将多重的.相关的实体信息保存在同一个表格中.例如,购买的零件和本地生产的零件都是零件,经理和工人都 ...

  5. SQL之cast()函数用法

    1.简介 cast()函数: 强制数据类型转换 cast()函数用法: cast(字段名 as 转换的类型) 2.实例: 表名:table 字段名:data (data 为 2019-09-16 18 ...

  6. SQL中CONVERT()函数用法详解

    SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...

  7. sql中coalesce()函数的使用

    1.coalesce()函数的作用就是返回一个不为null的值 2.例如在统计已读消息和未读消息场景就可以使用 <select id="messageCount"result ...

  8. SQL中DECODE函数用法

    DECODE函数用法: DECODE(expr_expression, search_expression, result_expression, [default_expression]) 当sea ...

  9. SQL的LEN函数用法及实例

    目录 1.语法及用法 (1)语法:len(text) (2)用法:返回某个文本字段的长度. 1.语法及用法 (1)语法:len(text) #查询语句 select [column(s),] len( ...

最新文章

  1. vs中不得不会的一些小技巧(1)——细说查找
  2. HTML a 标签的正则表达式
  3. perl 处理文件路径的一些模块
  4. 【Day02】测试 Primise、setTimeout等的执行顺序
  5. 解决引用flexible.js使第三方ui样式缩小的方法
  6. opencv检测相交点_OpenCV学习18--霍夫变换检测直线
  7. Python写一个服务
  8. rbf神经网络_黄小龙,陈阳舟:高阶非线性不确定多智能体系统自适应RBF神经网络协同控制...
  9. 关于分卷压缩文件打不开的问题
  10. 《Java 8实战》读书笔记
  11. c8网络语言意思,求一些比较经典的网络用语
  12. NHOI2019总结
  13. MATLAB:快速傅里叶变换(FFT)
  14. 利用ZEBAR 软件生成ZPL 代码
  15. 现在人工智能自动修复老照片的效果有好?
  16. Canon背后的故事
  17. [RK3399][Android7.1.1]Tethering:修复使用USB共享网络,拔出USB后 USB共享没有自动关闭的问题
  18. APICloud(二):选择一张或多张图片
  19. MySQL学习路线指南
  20. 【秒杀系统】从零开始打造简易秒杀系统(一):防止超卖

热门文章

  1. 20. 查询表student——查询所有不姓刘学生的姓名、学号和性别
  2. hosts 屏蔽广告 定位
  3. 原生ajax上传图片
  4. 一篇论文被拒稿了3次,下一步该怎么办?
  5. DCA1000EVM 【Status: Failed, Error Type: RESP TIMEOUT】 MSS Power Up async event was not received!
  6. 伟创变频器AC310与上位机通信调试记录
  7. 配置 IPv4 静态路由和默认路由
  8. 入门级耳机来了,超低延迟,NANK南卡N2S真无线蓝牙耳机
  9. vscode 配置 文件保存时自动格式化
  10. 环境监测技术中关于网络时间校准问题