Mysql之case语句(附带实例)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql之case语句(附带实例),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1399字,纯文字阅读大概需要2分钟。
内容图文
![Mysql之case语句(附带实例)](/upload/InfoBanner/zyjiaocheng/1117/36d34776c74e47c1b1b6725541abfcb3.jpg)
这段时间,做项目做累了,好不容易有点个人的学习时间,利用这个小时,总结一下,最近做统计的时候常用的case语句吧。
结构:case when… then …end
1.判断的同时改变其值
eg:
select OperatorAccount,
case
when CreateTime>‘2016-02-14 16:24:42‘ then ‘after‘
when CreateTime<‘2016-02-14 16:24:42‘ then ‘before‘
else ‘now‘ end stage
from log_login order by CreateTime DESC
第二种写法
SELECT CallerNumber, CASE IsLocal
WHEN 0 THEN ‘外线‘
WHEN 1 THEN ‘内线‘ END
FROM cdr
2.拆分一行为多列
eg:
SELECT SipAccount, COUNT(1) AS number,IsCheck
FROM cdr
GROUP BY SipAccount,IsCheck
![技术分享](/upload/getfiles/default/2022/11/11/20221111010110341.jpg)
针对这个统计结果进行拆分(0表示未打分,1代表优秀,2代表合格,3代表不合格)
最终结果如下:
所以最终要用到行拆分成三列,语句如下
SELECT SipAccount,
(CASE IsCheck WHEN 1 THEN number END) youxiu,
(CASE IsCheck WHEN 2 THEN number END) hege,
(CASE IsCheck WHEN 3 THEN number END) buhege
FROM
(SELECT SipAccount, COUNT(1) AS number,IsCheck
FROM cdr
GROUP BY SipAccount,IsCheck) AS a
![技术分享](/upload/getfiles/default/2022/11/11/20221111010110655.jpg)
现在结果是这样的,你会发现虽然拆成了三列,但是最终结果还不是自己需要的,接下来就需要根据sipaccount来分组的同时对结果进行处理了。语句如下:
SELECT sipaccount,
IF(MAX(youxiu) IS NULL,0, MAX(youxiu)) youxiu,
IF(MAX(hege) IS NULL,0, MAX(hege)) hege,
IF(MAX(buhege) IS NULL,0, MAX(buhege)) buhege
FROM
(SELECT SipAccount,
(CASE IsCheck WHEN 1 THEN number END) youxiu,
(CASE IsCheck WHEN 2 THEN number END) hege,
(CASE IsCheck WHEN 3 THEN number END) buhege
FROM
(SELECT SipAccount, COUNT(1) AS number,IsCheck FROM cdr GROUP BY SipAccount,IsCheck) AS a) AS b
GROUP BY sipaccount
![技术分享](/upload/getfiles/default/2022/11/11/20221111010110919.jpg)
最终得到了这个结果。正式我们需要的格式
原文:http://www.cnblogs.com/dreamflycc/p/mysql_case.html
内容总结
以上是互联网集市为您收集整理的Mysql之case语句(附带实例)全部内容,希望文章能够帮你解决Mysql之case语句(附带实例)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。