【问题标题】:Select specific amount of rows from query从查询中选择特定数量的行
【发布时间】:2015-05-28 13:39:31
【问题描述】:

我在下面有这个查询,我还需要从中获取特定数量的行,比如 100 行。我还需要从特定的行数中获取行数,例如从 100 到 200、从 200 到 300 等。我一直在尝试ROW_NUMBER() 函数,但没有运气。

注意!我们不能“偏移 100 行仅获取下 100 行”,因为它仅适用于 mssql 2012。

SELECT 
      Result.CaseCount,
      CaseID, 
      ChildCaseName,
      CPR,
      FirstName,
      LastName, 
      CustomerInfoID, 
      InstitutionName, 
      CaseDeadline, 
      [StatusName], 
      [StatusOwner] 
FROM ResultSelectorCTE, 
    (select count(*) as CaseCount FROM ResultSelectorCTE) AS Result

我该怎么做?

【问题讨论】:

  • 使用SELECT TOP 100 Column1, Column2 FROM Table
  • 注意:当使用“top”、“limit”等时,您应该始终包含order by 子句...否则:您选择哪 100 个?跨度>
  • 您想要获取 X 行还是获取所有内容以及行数?您标记了 C# - 您想在 C# 代码或 SQL 查询中获得计数吗?
  • @OwenPauling 是的,我想获得 x 行。我应该指定我需要从特定点开始的 100 行,例如用于分页功能。
  • @Örvar 这是一个重要的附加要求,它会改变解决方案 - 但请参阅 OFFSET {n} ROWS FETCH NEXT {m} ROWS ONLY

标签: sql-server


【解决方案1】:

我还需要从特定行数中获取行数,例如从 100 到 200、从 200 到 300 等。

select Foo, Bar
from SomeTable
order by Blap
offset 100 rows fetch next 100 rows only

或者使用ROW_NUMBER()

select x.Foo, x.Bar
from (
    select Foo, Bar, ROW_NUMBER() over(order by Blap desc) as [Row]
    from SomeTable) x
where x.[Row] > 100 and x.[Row] <= 200
order by x.[Row]

【讨论】:

  • 有什么办法也可以把计数放在那里吗?
  • @Örvar 哪个算?如果您的意思是总行数,我会将其作为单独的查询:select count(1) from SomeTable
  • 是的,总行数。我只是希望有可能在一个电话中获得所需的所有信息。我正在为客户解决性能问题。也许如果“大”调用是可能的,它可能会导致更糟糕的性能 insted 对数据库进行两次调用......感谢您的帮助。下次我发布问题时会更准确。
  • 我还没有读到它,但我可以想象count函数真的很快,
【解决方案2】:

MSSQL:SELECT TOP 100 Result.CaseCount,...

MYSQL:SELECT ... LIMIT 100;

【讨论】:

    【解决方案3】:
    SELECT TOP X Result.CaseCount, CaseID, ChildCaseName, ...
    

    X 是你的号码。

    【讨论】:

      【解决方案4】:
      Select TOP 100 [column1],[column2].....FROM TABLE
      

      但这取决于您提供的查询。 如果没有orderby,每次都会拉出不同的结果..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        • 2017-07-26
        • 1970-01-01
        • 2020-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多