【问题标题】:How to select record from 5th row without using where query in SQL Server如何在不使用 SQL Server 中的 where 查询的情况下从第 5 行中选择记录
【发布时间】:2019-01-04 11:42:02
【问题描述】:

我有一个表,它有 10 条记录,并在不使用 where 条件的情况下从 5 到 10 获取记录。

【问题讨论】:

  • 欢迎来到 Stack Overflow。在提出问题时,希望您首先展示您的研究或尝试自己解决问题。为了让您走上正轨,我建议您查看FETCHOFFSETUsing OFFSET and FETCH to limit the rows returned。如果您不明白,请发布您的尝试并解释为什么它没有按预期工作,或提供您收到的错误消息。
  • 另外,解释一下为什么你有“不使用 where 条件”的要求...

标签: sql-server tsql paging


【解决方案1】:

您可以使用OFSET-FETCH。应该是这样的:

SELECT  *
FROM mytable
ORDER BY id
OFFSET 5 ROWS  
FETCH NEXT 5 ROWS ONLY;  

由于 SQL Server 2012 支持上述语法,因此对于早期版本,您可以使用排名功能:

WITH DataSource AS
(
    SELECT *
          ,ROW_NUMBER() OVER(ORDER BY id) AS rn
    FROM mytable
)   
SELECT *
FROM DataSource
WHERE rn >= 5 AND rn <=10;

【讨论】:

    【解决方案2】:

    另一种执行查询的方法是使用TOP 子句,根据找到的示例here

    SELECT TOP(5) *
    FROM mytable
    ORDER BY id DESC;
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2018-01-06
      • 2020-11-04
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      相关资源
      最近更新 更多