数据分页的实现

2014-11-24 14:09:55 · 作者: · 浏览: 1
数据分页的实现
工作了半年,自己了解了 分 的方法,下面 分享下,有什麽好的方法可以指 一下哦..
方法一:利用ROW_NUMBER()方法
利用ROW_NUMBER 生序列后直接取出
/*如要查 的表 Test ,排序字段 TestA*/
                  declare @Count int /*每  示  的  */
                  declare @Page int /*  */
                  set @Count=10
                  set @Page=3
                   select top 10 * from 
                      (select *,ROW_NUMBER() over(order by t1.TestA )
                               as RowNumber from (select * from Test)t1) A
                  where A.RowNumber>
(@Count*@Page)

有一 ,查 果 多 生一 RowNumber 位,需要另外的去除或 ..
方法二:排序的方法
例如我 每 查 出10 ,要查 第4 ,我 是先正序查出前40 ,在倒序查 前10 ,在倒序改 正 的 序
Create procedure [dbo].[page]
 @pageSize int,
 @pageNumber int
as
begin
declare @totalNumber int

set @totalNumber=@pageSize*@pageNumber
select top (@totalNumber) * into #pagetable from Test  order by TestA asc
select top (@pageSize)* from #pagetable order by TestA desc
/*需要再倒序一次*/...
end

第二 方法比第一 麻 ,但是有 想法就okl了