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,这样就能通过该字段值来判断,严重的问题单有哪些。
野猪佩挤: 现在都不用 kube-proxy 还能使用openelb吗
普通网友: 优质好文,博主的文章细节很到位,兼顾实用性和可操作性,期待博主持续带来更多好文【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】
exc2131413: 好像抄袭bo哥的吧
CSDN-Ada助手: 推荐 Java 技能树:https://edu.csdn.net/skill/java?utm_source=AI_act_java
Vzn: 流程图是用什么软件画的