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

SQL排序疑问:自定义类别排序后如何按标题升序排列

实现自定义类别排序后按标题字母升序排序

当然可以实现这个需求,你只需要把title ASC作为第二个排序条件,放在CASE语句的END之后,用逗号分隔即可。正确的SQL语句如下:

SELECT *
FROM menu
ORDER BY 
    CASE WHEN category = 'Appetizers' THEN 1
         WHEN category = 'Entrees' THEN 2
         WHEN category = 'Desserts' THEN 3
         WHEN category = 'Beverages' THEN 4
         END,
    title ASC;

说明

  • CASE语句会为每个类别生成对应的排序优先级数字(1到4),SQL会先按这个数字升序排列,确保类别按你定义的顺序展示。
  • 逗号后的title ASC是第二个排序条件,当类别相同时,会自动按标题的字母顺序升序排列。

你之前尝试把title ASC加在CASE的每一行或者错误的位置,导致语法不符合SQL规范,现在这种写法完全符合排序逻辑和语法要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:40:36