我想选择1000到2000行的记录,依此类推1000个。
我已经编写了查询以选择前1000条记录,但我如何从1000到2000中选择。
你可以帮我查一下可以选择那些记录的查询。
SELECT TOP 1000 *
FROM tblProductInformation p1 INNER JOIN tblProduct1 p
ON p.productname = p1.productname
答案 0 :(得分:2)
WITH cte AS(
SELECT ROW_NUMBER()OVER(Order By p1.productname ASC, p1.ID ASC) As RowNum
,p1 .*
from tblProductInformation p1
inner join tblProduct1 p on p.productname = p1.productname
)
SELECT * FROM cte
WHERE RowNum BETWEEN @FromRowNum AND @ToRowNum
答案 1 :(得分:2)
我认为你需要在特定的列上订购,例如在主键上订购。
SELECT *
FROM
(
SELECT tbl.*, p.*, ROW_NUMBER() OVER (ORDER BY ProductID_PRIMARYKEY) rownum
FROM tblProductInformation as tbl INNER JOIN tblProduct1 p
ON p.productname = p1.productname
) seq
WHERE seq.rownum BETWEEN 1000 AND 2000
答案 2 :(得分:0)
WITH Results AS (
select TOP 1000 f.*, ROW_NUMBER() OVER (ORDER BY f.[type]) as RowNumber
from tblProductInformation f
) select *
from Results
where RowNumber between 1001 and 2000
答案 3 :(得分:0)
回答迟到..但对于来到这里的人来说可能会有所帮助...简单的一个 另一个简单的方法......
你可以创建一个类似的表"tblProductInformation_tmp" OR #tblProductInformation_tmp
- 带有一个额外的列" UniqueID"并使该自动增加IDENTITY列。
然后只需将相同的数据插入表:
insert * into tblProductInformation_tmp
select * from tblProductInformation
现在简单的ryt: select * from tblProductInformation_tmp其中UniqueID< 1001 select * from tblProductInformation_tmp,其中UniqueID介于1001和2001之间
:)别忘了删除:tblProductInformation_tmp
Rigin