數據分頁的實現
工作了半年,自己了解了幾種數據分頁的方法,下面來分享下,有什麽好的方法可以指導一下哦..
方法一:利用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) awhere a.rownumber>(@count*@page)
這個還有一個問題,查詢結果會多產生一個 rownumber欄位,需要另外的去除或無視..
方法二:排序的方法
例如我們每頁查詢出10條數據,要查詢第4頁,,我們是先正序查出前40條數據,在倒序查詢前10條,在倒序改變為正確的順序
create procedure [dbo].[page] @pagesize int, @pagenumber intasbegindeclare @totalnumber intset @totalnumber=@pagesize*@pagenumberselect top (@totalnumber) * into #pagetable from test order by testa ascselect top (@pagesize)* from #pagetable order by testa desc/*需要再倒序一次*/...
end
第二種方法比第一種麻煩,但是有這個想法就okl了
posted on
