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

SQL查询如何将指定Other分类固定显示在结果集末尾

解决方案

你只需要在原ORDER BY子句的最前面新增一级排序规则,将归属到Other分类的所有条目(含一级分类本身和它的子分类)统一后置即可,修改后的查询语句如下:

select
    bn.[ProductId],
    bn.[Name],
    bn.[Store],
    bn.[City],
    bn.[ZipCode],
    bn.[ParentId]
from
    [dbo].[ProductName] bn
order by
        -- 新增排序规则:所属一级分类为Other的整体排在最后
        case 
            when (case when bn.ParentID is null then bn.Name else (select Name from ProductName parent where parent.ProductId = bn.ParentID) end) = 'Other' 
            then 2 
            else 1 
        end,
        -- 以下保留原有排序逻辑
        case 
        when bn.ParentID is null
        then bn.ProductId 
        else    (
                select  ProductId 
                from    ProductName parent 
                where   parent.ProductId = bn.ParentID
                ) 
        end,
        case when bn.ParentID is null then 1 end desc,
        bn.ParentID

逻辑说明

  • 新增的排序条件会先判断每条记录归属的一级分类名称是不是Other:如果是就赋值为2,其他分类赋值为1,排序时1在前2在后,就能保证整个Other分类(包括它下面的所有子分类)都固定在所有分类的最后
  • 原有排序逻辑完全保留,不会影响除Other之外的其他分类的排序顺序,也不会破坏子分类挂靠对应父分类的展示规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:54:03