sql - 如何使用 SQL 将数据排序为 3 个按字母顺序排列的子组?
问题描述
我正在使用 SQL 为我学校的教师显示学生数据,出于可用性原因,它需要以非常独特的排序方式显示,用 3 个字母表子集划分数据集,然后在其中进行正常排序。
它应该吐出这样的东西:
姓氏 AF,按句点排序,然后按姓氏
姓 GO,按句点排序,然后按姓氏
姓氏 PZ,按句号排序,然后按姓氏
它目前按句点和姓氏进行排序相当简单,我可以使用三个不同的查询来拆分数据,但我不知道如何合二为一。
SELECT * FROM Student ORDER BY per, last;
解决方案
您是否在寻找条件表达式order by
?
order by (case when last < 'G' then 1
when last < 'P' then 2
else 3
end),
per, last
推荐阅读
- regex - BigQuery - 在列名与正则表达式模式匹配的列中计算非空值
- javascript - 刷新页面后删除项目不起作用
- flask - 无需在烧瓶中重新加载页面即可实现更新喜欢和评论的方法?
- regex - 正则表达式与给定的输入不匹配
- node.js - Nginx `auth_request` vs Nodejs 身份验证中间件
- unit-testing - 如何使用 Jest 测试一个简单的 Svelte 购物车?
- python - 如何使用 Pandas 在 Python 中创建一年中某事发生的次数的折线图?
- django-mptt - 如何计算 MPTT 模型中后代的顺序或位置?
- ios - Swift/SwiftUI 加载多个核心数据对象并在视图中显示
- opencv - 如何在 Julia 中的图像上绘制感兴趣区域?