>데이터 베이스 >MySQL 튜토리얼 >數據分頁的實現

數據分頁的實現

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-06-07 17:38:381060검색

數據分頁的實現 工作了半年,自己了解了幾種數據分頁的方法,下面來分享下,有什麽好的方法可以指導一下哦.. 方法一:利用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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.