2

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

任何想法对我都有帮助。

4

4 回答 4

4

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

SELECT ROW_NUMBER() OVER (ORDER BY Products.ProductID) as 'rownbr', Products.ProductID
FROM Products
ORDER BY Products.ProductID

然后像这样使用 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
于 2013-04-12T11:03:22.377 回答
1

前 10,000 条记录,然后是其余记录;

SELECT TOP 10000 * FROM table ORDER BY Id
DECLARE @count int;
SET @count = (SELECT COUNT(*)  FROM table);
SELECT TOP (@count - 10000) * FROM table ORDER BY Id DESC;
于 2013-04-12T10:45:35.893 回答
0

我假设您想从第 10,001 行中进行选择

要获得接下来的 1000 行,您可以执行以下操作:

SELECT TOP 1000 * FROM
TABLE
WHERE ID >= 10001

或者只是在其中应用一个AND子句WHERE,它将返回第 10,001 - 15,001 行:

SELECT * FROM
TABLE
WHERE ID >= 10001 AND ID <= 15001
于 2013-04-12T10:42:10.897 回答
0

请参阅以下链接以获取解决方案-

http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/6fdeb5f0-b705-4e40-a98b-6dd25539e92d

于 2013-04-12T10:47:53.937 回答