[SQL] CASE...WHEN 进行排序和分组
2021/6/9 19:25:09
本文主要是介绍[SQL] CASE...WHEN 进行排序和分组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SQL CASE…WHEN 进行排序和分组基本排序
置顶单行数据并将其他数据排序
select * from tb_schedule_zy order by (case schedule_id when '1' then 0 else 1 end) asc, create_time desc, schedule_name desc
置顶id为1的数据,并将其他数据优先以时间倒叙排序,如果时间一样,按照名称倒序排序
- ordey by 后面根据 ‘,’ 区分多个条件,并由左到右进行优先级排序
分组条件判断统计
case ... when ...测试:
根据字段分组统计
SELECT CASE WHEN dev_group_id <= 10 THEN '1' WHEN dev_group_id > 10 AND dev_group_id <= 20 THEN '2' WHEN dev_group_id > 20 AND dev_group_id <= 30 THEN '3' WHEN dev_group_id > 30 AND dev_group_id <= 40 THEN '4' ELSE NULL END scount, COUNT(*) FROM tb_auth_detail_all GROUP BY CASE WHEN dev_group_id <= 10 THEN '1' WHEN dev_group_id > 10 AND dev_group_id <= 20 THEN '2' WHEN dev_group_id > 20 AND dev_group_id <= 30 THEN '3' WHEN dev_group_id > 30 AND dev_group_id <= 40 THEN '4' ELSE NULL END; -- 输出 scount count NULL 160187 2 9859 4 9983 3 9996 1 9975 select count(*) from tb_auth_detail_all where dev_group_id <= 10 -- 输出 count 9975
总结:
- Case具有两种格式。简单Case函数和Case搜索函数。
-- 简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END -- Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END
- Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略
-- 比如说,下面这段SQL,你永远无法得到“第二类”这个结果 CASE WHEN col_1 IN ( 'a', 'b') THEN '第一类' WHEN col_1 IN ('a') THEN '第二类' ELSE'其他' END
- Case函数用途 分组(分析)、条件过滤执行语句、排序置顶数据、简化sql、检查表数据是否一致等,详见【1】
REFRENCES
- SQL中的case when then else end用法
这篇关于[SQL] CASE...WHEN 进行排序和分组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享