开发者社区 问答 正文

SQL Server中的行偏移

SQL Server中有什么方法可以使结果从给定的偏移量开始?例如,在另一种类型的SQL数据库中,可以执行以下操作:

SELECT * FROM MyTable OFFSET 50 LIMIT 25 得到结果51-75。SQL Server中似乎不存在此构造。

如何在不加载我不关心的所有行的情况下完成此任务?谢谢!

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 16:04:25 404 分享 版权
1 条回答
写回答
取消 提交回答
  • 这是一种方法(SQL2000)

    SELECT * FROM ( SELECT TOP (@pageSize) * FROM ( SELECT TOP (@pageNumber * @pageSize) * FROM tableName ORDER BY columnName ASC ) AS t1 ORDER BY columnName DESC ) AS t2 ORDER BY columnName ASC 这是另一种方式(SQL 2005)

    ;WITH results AS ( SELECT rowNo = ROW_NUMBER() OVER( ORDER BY columnName ASC ) , * FROM tableName ) SELECT * FROM results

    2019-11-18 16:04:41
    赞同 展开评论