从查询中选择特定的行数

时间:2015-05-27 09:29:46

标签: sql-server

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

NB!我们不能“仅限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

我该怎么做?

4 个答案:

答案 0 :(得分:3)

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

MYSQL:SELECT ... LIMIT 100;

答案 1 :(得分:3)

  

我还需要从特定行数中获取行,例如从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]

答案 2 :(得分:1)

SELECT TOP X Result.CaseCount, CaseID, ChildCaseName, ...

其中X是你的号码。

答案 3 :(得分:0)

Select TOP 100 [column1],[column2].....FROM TABLE

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