liuhongyu 发表于 2016-11-3 07:29:32

SQL Server 高效分页,没有比这更好的了!

-- @PageNo   : 第几页
-- @PageSize : 一页的记录数
-- 演示在表 dbo.HotTable 上进行分页的方法。其中 ID 为主键。

declare @PageNo   int
       ,@PageSize int

set @PageNo   = 1
set @PageSize = 10


if @PageNo = 1 begin
   select top(@PageSize) * from dbo.HotTable order by ID
end
else begin
   select top(@PageSize) *
   from dbo.HotTable
    where ID > (select max(ID)
                  from (select top (@PageNo * @PageSize) *
                        from dbo.HotTable
                         order by ID
                     ) T
               )
    order by ID
end
以上代码很简单,只是用于演示 SQL Server 分页的原理,你可以构造满足你需求的更复杂的分页存储过程。另外以上 SQL 分页代码在 SQL Server 2005 中运行通过。你可以修改下,用于 SQL Server 的其他版本。
页: [1]
查看完整版本: SQL Server 高效分页,没有比这更好的了!