数据分页的实现
工作了半年,自己了解了 分 的方法,下面 分享下,有什麽好的方法可以指 一下哦..
方法一:利用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了