You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现带特定值优先级的多级ORDER BY排序?

实现自定义优先级的多级ORDER BY排序

嘿,要实现你这种自定义优先级的多级排序,用SQL里的CASE表达式就可以轻松搞定啦!它能让咱们手动指定每个字段的排序权重,完美匹配你要的规则。

先来看你的原始数据表格:

CodeCityRole
1MumbaiDesigner
2MumbaiDesigner
3DelhiDesigner
4DelhiProject Manager
5MumbaiProject Manager
6PuneDesigner
7LondonNetwork Engineer

具体实现思路

我们需要在ORDER BY里嵌套CASE语句,分别给City和Role指定自定义的排序优先级:

  • 第一级(City):给Delhi分配最小的权重(比如1),Mumbai分配2,其他所有城市分配3——这样权重小的会排在前面,正好符合Delhi > Mumbai > 其他的优先级
  • 第二级(Role):给Project Manager分配1,Designer分配2,其他角色分配3,实现Project Manager > Designer > 其他的排序逻辑

完整SQL查询语句

SELECT Code, City, Role
FROM your_table_name
ORDER BY
  -- 第一级:自定义城市优先级
  CASE City
    WHEN 'Delhi' THEN 1
    WHEN 'Mumbai' THEN 2
    ELSE 3
  END,
  -- 第二级:自定义角色优先级
  CASE Role
    WHEN 'Project Manager' THEN 1
    WHEN 'Designer' THEN 2
    ELSE 3
  END;

排序后的结果

执行上面的查询后,你会得到如下排序后的结果:

CodeCityRole
4DelhiProject Manager
3DelhiDesigner
5MumbaiProject Manager
1MumbaiDesigner
2MumbaiDesigner
6PuneDesigner
7LondonNetwork Engineer

你看,这个结果完全符合你要求的排序规则:先按Delhi、Mumbai、其他城市分组,每个城市组内再按Project Manager、Designer、其他角色排序。

内容的提问来源于stack exchange,提问作者traveloid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:24:34