我在我的数据库中有更多的记录。因此,我想选择前10,000条记录。然后我必须继续从下一条记录开始选择,也就是从第10,001条到某些值。如何在这里放置查询?
有任何想法对我都很有帮助。
我在我的数据库中有更多的记录。因此,我想选择前10,000条记录。然后我必须继续从下一条记录开始选择,也就是从第10,001条到某些值。如何在这里放置查询?
有任何想法对我都很有帮助。
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
前10000个记录,再加上其余的记录;
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;
SELECT TOP (COUNT(*) - 10000)
不会起作用,因为我认为你不能在 TOP 子句中使用表达式。但是,即使它能够工作;如果你有70,000行……它将返回前60,000行——不是吗? - Lee Gunn我猜你想从第10,001行开始选择
要获取接下来的1000行,你可以这样做:
SELECT TOP 1000 * FROM
TABLE
WHERE ID >= 10001
或者在 WHERE
中应用一个 AND
子句,这将返回第 10,001 - 15,001 行:
SELECT * FROM
TABLE
WHERE ID >= 10001 AND ID <= 15001