分頁的幾種方法
阿新 • • 發佈:2019-01-06
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