SQL语句 - 使用order by优先级排序

背景:现有地区表area_info,地区表只有一个字段admincode,表示地区编号,要求查询所有地区编号出来,其中“1305”开头的编号排在首位,“1307”开头的编号排在第二位。

《SQL语句 - 使用order by优先级排序》

使用SQL语句的order by 和case when进行优先级排序:

select * from area_info where admincode like '13%' 
order by 
case when admincode like '1305%' then 1 else 10 end,
case when admincode like '1307%' then 2 else 10 end;

《SQL语句 - 使用order by优先级排序》

其中“1”和“2”所在位置的内容只是组别,不超过10不影响排序。对比结果如下:

《SQL语句 - 使用order by优先级排序》《SQL语句 - 使用order by优先级排序》

如果还想进行二级排序,令每一个组合里(这里1305为一个组合)升序排序:

select * from area_info where admincode like '13%' 
order by 
case when admincode like '1305%' then 5 else 10 end,
case when admincode like '1307%' then 2 else 10 end,
admincode;

《SQL语句 - 使用order by优先级排序》

    原文作者:SQL
    原文地址: https://blog.csdn.net/a258831020/article/details/50159551
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞