0 votes
1 view
in SQL by (20.3k points)

What is the SQL equivalent of the .Skip()method in LINQ?

For example, I would like to select rows 1000-1100 from a specific database table.

Is this possible with just SQL? Or do I need to select the entire table, then find the rows in memory? I'd ideally like to avoid this, if possible since the table can be quite large.

1 Answer

0 votes
by (36.7k points)

If you are using SQL Server 2005 and above,  then you can use ROW_NUMBER function like this:

QUERY:

USE AdventureWorks;

GO

WITH OrderedOrders AS

(

    SELECT SalesOrderID, OrderDate,

    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'

    FROM Sales.SalesOrderHeader 

SELECT * 

FROM OrderedOrders 

WHERE RowNumber BETWEEN 51 AND 60; --BETWEEN is inclusive

...