Mysql coalesce函数太好用了 结合case when 更强大

 一、业务场景

处理业务数据的时候遇到这个场景,相信大家多少也遇到过类似的:对业务的一张质量问题单表中,有两个字段是用来判断问题单的严重情况,若其中任意一个字段非空,则为严重,否则相反,针对严重的问题单业务会重点进行数据分析。

 需要已经了解了,下面就结合对应的函数来执行,coalesce函数正是可以用来判断非空字符内容的“法宝”。

二、coalesce函数解释

coalesce():返回参数中的第一个非空表达式(从左向右)

下面举例几个实例,这样就一目了然

SELECT coalesce(null,1,2); // 返回1

SELECT coalesce(null,"A","B"); // 返回A

SELECT coalesce(1,"A","B"); // 返回1

SELECT coalesce(NULL, NULL); //返回 Null 

SELECT coalesce(NULL, ""); //返回 空字符 

 

三、业务解析SQL

知道了函数的用法,接下来就是带入到业务的实际场景中来分析了,我们假设两个字段是A,B;若都为空则为不严重,任意一个非空则为严重,在此我结合了case when 将是否严重存在一个新字段flag,我们用1表示严重,0表示不严重。


SQL如下:

SELECT
    NO,
    CREATE_TIME,
    DESC,
    ...,
    case when coalesce(A,B) is null then 0 else 1 end as flag
FORM PROBLEM_F

总结:coalesce函数中的参数可以多个,功能还是非常强大的。结合case when,进行对两个参数判断的结果值分别进行赋值给一个新字段flag,这样就能通过该字段值来判断,严重的问题单有哪些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值