How do I write LINQ's .Skip(1000).Take(100) in pure SQL?
.net, sql, sql-server
Solution
SQL Server 2012 and above have added this syntax:
SELECT *
FROM Sales.SalesOrderHeader
ORDER BY OrderDate
OFFSET (@Skip) ROWS FETCH NEXT (@Take) ROWS ONLY
Problem
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.