【问题标题】:SQL: Trying to order a column by descending order while ignoring two records on topSQL:尝试按降序对列进行排序,同时忽略顶部的两条记录
【发布时间】:2026-01-26 14:40:01
【问题描述】:

我正在尝试按列排序,我想忽略应该在顶部的几条记录并按剩余记录排序。非常感谢任何快速帮助。这是我到目前为止所拥有的。谢谢。

 select * 
 from table  
 order by case when column  in (1,2) then order by 1 desc;

【问题讨论】:

  • 我的意思是我想忽略顶部的条件行并订购其他行
  • 这是 SQL 2008 还是 2012?这很重要,因为 OF​​FSET FETCH 可以为您做到这一点

标签: sql sql-server sql-server-2008 sql-server-2012


【解决方案1】:

我认为您正在寻找的语法是这样的:

Select      * 
From        Table  
Order By    Case When Column In (1,2) Then 0 Else 1 End, 
            Column;

我将Column 添加为辅助排序,因为您提到:

并按剩余记录排序

【讨论】:

    【解决方案2】:
    select *
    from table  
    order by case when column  in (1,2) then 1 else 2 end asc, column desc
    

    这称为条件排序或顺序。本质上,您将明确的值赋予您想要在顶部的那些值,然后继续进行正常的排序。

    【讨论】:

      最近更新 更多