首页 > 解决方案 > 如何使用 SQL 将数据排序为 3 个按字母顺序排列的子组?

问题描述

我正在使用 SQL 为我学校的教师显示学生数据,出于可用性原因,它需要以非常独特的排序方式显示,用 3 个字母表子集划分数据集,然后在其中进行正常排序。

它应该吐出这样的东西:

姓氏 AF,按句点排序,然后按姓氏

姓 GO,按句点排序,然后按姓氏

姓氏 PZ,按句号排序,然后按姓氏

它目前按句点和姓氏进行排序相当简单,我可以使用三个不同的查询来拆分数据,但我不知道如何合二为一。

SELECT * FROM Student ORDER BY per, last;

标签: sqlselectalphabetical

解决方案


您是否在寻找条件表达式order by

order by (case when last < 'G' then 1
               when last < 'P' then 2
               else 3
          end),
         per, last

推荐阅读