作者:全球不懂我_934 | 来源:互联网 | 2018-07-10 15:00
數據分頁的實現工作了半年,自己了解了幾種數據分頁的方法,下面來分享下,有什麽好的方法可以指導一下哦..方法一:利用ROW_NUMBER()方法利用ROW_NUMBER產生序列后直接取出declare@Countdeclare@Page@Counttop10*from(select*,ROW_NUMBER
數據分頁的實現 工作了半年,自己了解了幾種數據分頁的方法,下面來分享下,有什麽好的方法可以指導一下哦.. 方法一:利用ROW_NUMBER()方法 利用ROW_NUMBER 產生序列后直接取出 declare @Count declare @Page @Count=top 10 * from ( select * ,ROW_NUMBER
數據分頁的實現
工作了半年,自己了解了幾種數據分頁的方法,下面來分享下,有什麽好的方法可以指導一下哦..
方法一:利用ROW_NUMBER()方法
利用ROW_NUMBER 產生序列后直接取出
declare @Count
declare @Page @Count=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了
posted on