选择sql中的下一行

Duk*_*Duk 3 sql select sql-server-2008

我的数据库中有更多记录。所以我想选择前 10,000 条记录。然后我必须继续从下一个记录中选择,意味着下一个 10,001 直到一些值。如何在这里放置查询?

任何想法对我来说都是有帮助的。

Tim*_*zov 5

如果表中没有 ID 行,或者 ID 不是 IDENTITY,则可以使用 ROW_NUMBER 函数,如下所示:

SELECT ROW_NUMBER() OVER (ORDER BY Products.ProductID) as 'rownbr', Products.ProductID
FROM Products
ORDER BY Products.ProductID
Run Code Online (Sandbox Code Playgroud)

然后只需使用 WHERE 子句,如下所示:

SELECT ROW_NUMBER() OVER (ORDER BY Products.ProductID) as 'rownbr', Products.ProductID
FROM Products
WHERE rownbr BETWEEN 10000 and 20000
ORDER BY Products.ProductID
Run Code Online (Sandbox Code Playgroud)