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

SQL排序时如何对比同表两行数据实现自定义条件排序

多条件自定义排序实现方案

方案1:原生多字段排序(最简洁,通用所有主流数据库)

这种多优先级排序需求不需要额外写复杂的判断逻辑,直接通过ORDER BY指定多字段排序顺序即可,字段顺序对应排序优先级:

  1. 第一优先级对比total_score字段
  2. total_score相等时,自动触发第二优先级对比mcq_score字段
    示例代码(假设表名为score_table,按降序排序,和你期望的结果匹配):
SELECT id, total_score, mcq_score 
FROM score_table
ORDER BY total_score DESC, mcq_score DESC;

方案2:条件语句实现(符合要求的条件判断写法)

如果需要显式通过条件语句控制排序逻辑,可以用CASE WHEN实现,效果和方案1完全一致:

SELECT id, total_score, mcq_score 
FROM score_table
ORDER BY
  -- 第一排序条件:按total_score排序
  CASE WHEN total_score IS NOT NULL THEN total_score END DESC,
  -- 第二排序条件:total_score相等时触发,按mcq_score排序
  CASE WHEN mcq_score IS NOT NULL THEN mcq_score END DESC;

输出结果验证

两种方案执行后得到的结果和预期完全一致:

idtotal_scoremcq_score
25040
15030
35020

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:24:05