1. 程式人生 > >分頁的幾種方法

分頁的幾種方法

1:Top分頁法 

       缺點:資料量越大效率越慢

2:between 1 and 5 

       select * from  表名  where 表id  between 6 and  10

        Id不連續是有問題的

3: row_number函式分頁 ,

     select row_number() over (order by id) as rowNum,* from 表名where 表id between 6 and  10

        查詢行號,  集合在一起查詢 解決了用between 分頁id不連續的問題  

sql包裹:把一次查詢的結果,作用另外一次查詢的表

4:記憶體分頁

         一次查詢全表,放入記憶體,分頁直接請求記憶體    效率非常快,快取

        缺點:佔記憶體

5:offset ,sqlserver2012開始支援

6:  儲存過程分頁 

Ø  開始位置與結束位置計算

  第一頁:page=1  , rows=5

  開始位置:  (page-1)*rows +1 = (1-1)*5+1 = 1

  結束位置: page*rows = 1*5= 5

  第二頁:page=2  , rows=5

  開始位置:  (page-1)*rows +1 =(2-1)*5+1 = 6

  結束位置: page*rows = 1*5= 2*5 = 10