【问题标题】:How to order by a different column and then fetch offset rows in SQL Server?如何按不同的列排序,然后在 SQL Server 中获取偏移行?
【发布时间】:2018-12-10 17:50:19
【问题描述】:

考虑下面的查询。

Select * 
From table 
Where name = 'stackoverflow' 
Order By age

这是我感兴趣的查询。但是我也想将它与 limit 和 offset 结合起来。所以这就是我现在所做的。

Select
    *, 
    ROW_NUMBER() OVER (ORDER BY primary_id DESC) as ROW_NUMBER
From 
    table 
Where 
    name = 'stackoverflow' 
Order By 
    age, 
Offset 10 rows Fetch Next 20 Rows Only 

问题是我得到了错误的结果。我想先根据where name = 'stackoverflow'查询所有行,然后order By age,然后只根据limit和offset获取一些行。

【问题讨论】:

    标签: sql sql-server sql-order-by offset


    【解决方案1】:

    你有两个order by 子句也许你只需要一个:

    select t.*
    from table t 
    where name = 'stackoverflow' 
    order by age 
    offset 10 rows 
    fetch next 20 rows only; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-15
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      相关资源
      最近更新 更多