我的数据库中有更多记录。所以我想选择前 10,000 条记录。然后我必须继续从下一个记录中选择意味着下一个 10,001 到一些值。如何在这里查询?
任何想法对我都有帮助。
我的数据库中有更多记录。所以我想选择前 10,000 条记录。然后我必须继续从下一个记录中选择意味着下一个 10,001 到一些值。如何在这里查询?
任何想法对我都有帮助。
如果您的表中没有 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
前 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;
我假设您想从第 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
请参阅以下链接以获取解决方案-