Selecting specific row number in sql [duplicate]
For SQL Server 2005+ (set @startRow and @endRow):
SELECT OrderingColumn FROM ( SELECT OrderingColumn, ROW_NUMBER() OVER (ORDER BY OrderingColumn) AS RowNum FROM MyTable) AS MyDerivedTableWHERE MyDerivedTable.RowNum BETWEEN @startRow and @endRow
SQL fiddle example: http://sqlfiddle.com/#!3/b4b8c/4
For SQL Server 2012, try this (simply set the offset)
SELECT *FROM MyTable ORDER BY OrderingColumn ASC OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY
OFFSET
:
Specifies the number of rows to skip before it starts to return rows from the query expression.
FETCH NEXT
:
Specifies the number of rows to return after the OFFSET
clause has been processed.
Definitions of OFFSET
and FETCH NEXT
are from here.
Query 1:
Offset 0 => 1-5
Query 2:
Offset 5 => 6-10, etc.
SQL fiddle example: http://sqlfiddle.com/#!6/b4b8c/2