【问题标题】:select records After top 1000 rows选择前 1000 行之后的记录
【发布时间】:2023-03-11 05:24:01
【问题描述】:

我想分批选择 1000 到 2000 行的记录,以此类推。

我已经编写了查询以选择前 1000 条记录,但是我如何从 1000 到 2000 中进行选择。

你能帮我做一个可以选择这些记录的查询吗?

SELECT TOP 1000 *
FROM tblProductInformation p1 INNER JOIN tblProduct1 p 
ON p.productname = p1.productname 

【问题讨论】:

  • 您应该在使用 top 子句时添加一个明确的顺序,没有它,顺序就无法保证,即使它看起来很像。
  • 您要查找的内容称为分页。只要搜索“paging sql server”,就会得到很多结果。

标签: sql-server


【解决方案1】:

我认为您需要按特定列排序,例如按主键排序。

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

【讨论】:

  • 我想使用连接查询如何在您的上述查询中使用它
  • 你可以加入。我更新了我的评论。此解决方案的关键是 ROW_NUMBER() OVER (ORDER BY ProductID_PRIMARYKEY)。此语句将帮助您使用 WHERE seq.rownum BETWEEN 1000 AND 2000 对结果进行排序并获取第 1000-2000 行
【解决方案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

【讨论】:

    【解决方案3】:
    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
    

    tutorial

    【讨论】:

      【解决方案4】:

      回答晚了..但可能对来这里的人有帮助...简单的一个 另一种简单的方法...

      您可以创建一个类似的表 "tblProductInformation_tmp" OR #tblProductInformation_tmp - 使用额外的列“UniqueID”并创建自动递增的 IDENTITY 列。 然后只需将相同的数据插入到表中:

      insert * into tblProductInformation_tmp 
      select * from tblProductInformation 
      

      现在它很简单 ryt : select * from tblProductInformation_tmp where UniqueID

      :) 不要忘记删除:tblProductInformation_tmp

      瑞金

      【讨论】:

        猜你喜欢
        • 2016-08-11
        • 2010-12-04
        • 2017-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-13
        • 1970-01-01
        相关资源
        最近更新 更多