5
分页如何与SQL Server中的ROW_NUMBER一起使用?
我有一张Employee有一百万条记录的表。我有以下用于在Web应用程序中分页数据的SQL。一切正常。但是,我认为是一个问题-派生表tblEmployee选择表中的所有记录Employee(以创建 MyRowNumber值)。 我认为,这将导致选择Employee表中的所有记录。 真的有效吗?还是对SQL Server进行了优化以从原始Employee表中仅选择5条记录? DECLARE @Index INT; DECLARE @PageSize INT; SET @Index = 3; SET @PageSize = 5; SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY EmpID asc) as MyRowNumber,* FROM Employee) tblEmployee WHERE MyRowNumber BETWEEN ( ((@Index - 1) * @PageSize )+ 1) AND @Index*@PageSize