实现sqlserver分页查询语句
sqlServer:
一次查询,数据库只返回一页的数据。而不是取出所有的数据。
pagesize: 每页显示记录数
cureentpage:当前页数
select * from ( select TOP pagesize * from ( SELECT TOP pagesize*cureentpage * from my_table ORDER BY id ASC ) as amyTable ORDER BY id DESC ) as bmyTable ORDER BY id ASC
假设共有有8条记录,每页显示3条记录,id 为3,6,7,37
第一页(首页)
select * from ( select TOP 3 * from ( SELECT TOP 3*1 * from my_table ORDER BY id ASC ) as amyTable ORDER BY id DESC ) as bmyTable ORDER BY id ASC
第二页
select * from ( select TOP 3 * from ( SELECT TOP 3*2 * from my_table ORDER BY id ASC ) as amyTable ORDER BY id DESC ) as bmyTable ORDER BY id ASC
第三页(尾页)
select * from ( select TOP 8-2*3 * from ( SELECT TOP 8-3*2 * from my_table ORDER BY id ASC ) as amyTable ORDER BY id DESC ) as bmyTable ORDER BY i