How do I write LINQ's .Skip(1000).Take(100) in pure SQL?

前端 未结 6 875
梦谈多话
梦谈多话 2020-11-29 18:45

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

6条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-29 19:29

    In SQL Server 2005 and above you can use ROW_NUMBER function. eg.

    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
    

提交回复
热议问题