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