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

SQL排序需求:指定值置顶并按日期降序分组排序

实现指定分组排序的SQL方案

没问题,这个需求其实可以通过在ORDER BY里添加优先级判断轻松实现,核心思路是先把指定的b、c标记为高优先级组让它们整体置顶,再让两组内部各自按dates降序排序。

直接上可运行的SQL代码:

SELECT names, dates
FROM your_table_name
ORDER BY
    -- 第一步:标记优先级,b、c为1(置顶组),其他为2(普通组)
    CASE WHEN names IN ('b', 'c') THEN 1 ELSE 2 END,
    -- 第二步:两组内部均按dates降序排序
    dates DESC;

代码细节解释:

  • CASE WHEN names IN ('b', 'c') THEN 1 ELSE 2 END:给b和c分配更小的排序权重(1),确保它们排在所有权重为2的记录前面,实现置顶效果。
  • dates DESC:在同一个优先级组内,按照dates从大到小排序,完美满足两组分别排序的要求。

测试结果验证:

用你提供的测试数据运行后,输出会是:

namesdates
c2017
b2013
a2016
d2011

完全符合需求:b、c置顶且组内按dates降序,其余记录也按dates降序排列。

内容的提问来源于stack exchange,提问作者Rosvin John Rosales

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:35:25