SQL Server 分页取数据范围

原始记录时间:2023年4月22日

SQL Server 分页取数据范围

通过嵌套 SELECT TOP 实现分页获取数据范围:

SELECT * FROM (
    SELECT TOP (最大 - 最小 + 1) * FROM (
        SELECT TOP 最大 * FROM Sheet1 ORDER BY id ASC
    ) ORDER BY id DESC
) ORDER BY id ASC

补充:这是 SQL Server 早期版本(2000/2005)在没有 ROW_NUMBER() 或 OFFSET FETCH 时的分页方案。现代 SQL Server(2012+)推荐:

SELECT * FROM Sheet1 ORDER BY id OFFSET 起始行 ROWS FETCH NEXT 行数 ROWS ONLY;