且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何从T-SQL中的排序表中的第M行开始获取N行

更新时间:2023-12-01 10:57:52

更新 如果您使用的是 SQL 2012,则添加了新语法以使其变得非常简单.请参阅使用此查询实现分页(跳过/获取)功能

UPDATE If you you are using SQL 2012 new syntax was added to make this really easy. See Implement paging (skip / take) functionality with this query

我想最优雅的是使用 ROW_NUMBER 函数(可从 MS SQL Server 2005 获得):

I guess the most elegant is to use the ROW_NUMBER function (available from MS SQL Server 2005):

WITH NumberedMyTable AS
(
    SELECT
        Id,
        Value,
        ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber
    FROM
        MyTable
)
SELECT
    Id,
    Value
FROM
    NumberedMyTable
WHERE
    RowNumber BETWEEN @From AND @To