LINQ中.Skip()
方法的SQL类似功能是什么?
例如:我想从特定的数据库表中 Select 1000-1100行.
仅使用SQL就可以做到这一点吗?还是需要 Select 整个表,然后在内存中查找行?如果可能的话,我希望尽量避免这种情况,因为桌子可能会很大.
LINQ中.Skip()
方法的SQL类似功能是什么?
例如:我想从特定的数据库表中 Select 1000-1100行.
仅使用SQL就可以做到这一点吗?还是需要 Select 整个表,然后在内存中查找行?如果可能的话,我希望尽量避免这种情况,因为桌子可能会很大.
在SQLServer2005及以上版本中,可以使用ROW_NUMBER函数.如.
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