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

如何将document_status为RESULTANT的记录置底,其余按id升序排序?

正确的SQL实现方案

正确SQL语句

SELECT 
  l.id,
  l.document_number,
  l.document_status
FROM load_record l
ORDER BY 
  (l.document_status = 'RESULTANT') ASC, 
  l.id ASC;

原语句问题分析

你之前的SQL把l.id ASC作为第一排序条件,这会让所有记录先按id升序排列,优先级远高于状态判断条件。所以id=3的RESULTANT记录会直接排在id=4、5的前面,第二个排序条件完全起不到作用。

正确逻辑说明

  1. 第一排序条件:(l.document_status = 'RESULTANT') ASC
    在SQL中,布尔表达式l.document_status = 'RESULTANT'会被转换为数值:符合条件返回1,不符合返回0。按升序排列时,0(非RESULTANT记录)会全部排在1(RESULTANT记录)的前面,实现把RESULTANT记录置底的需求。
  2. 第二排序条件:l.id ASC
    在非RESULTANT的分组内,所有记录按id升序排列;RESULTANT分组内也按id升序(这里仅一条记录,不影响结果),满足其余记录按id排序的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:15:08