sql的coalesce函数用法

介绍

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值