首页 > IT职业 > IT生活 > SQL server如何分页

1、三重循环
先取前20页,然后倒序,取倒序后前10条记录,这样就能得到分页所需要的数据,不过顺序反了,之后可以将再倒序回来,也可以不再排序了,直接交给前端排序。
-- 设置执行时间开始,用来查看性能的 set statistics time on ; -- 分页查询(通用型) select * from (select top pageSize * from (select top (pageIndex*pageSize) * from student order by sNo asc ) -- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。 as temp_sum_student order by sNo desc ) temp_order order by sNo asc -- 分页查询第2页,每页有10条记录 select * from (select top 10 * from (select top 20 * from student order by sNo asc ) -- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。 as temp_sum_student order by sNo desc ) temp_order order by sNo asc ;
2、利用max(主键)
先top前11条行记录,然后利用max(id)得到最大的id,再重新再这个表查询前10条,不过要加上条件,where id>max(id)。
set statistics time on; -- 分页查询(通用型) select top pageSize * from student where sNo>= (select max(sNo) from (select top ((pageIndex-1)*pageSize+1) sNo from student order by sNo asc) temp_max_ids) order by sNo; -- 分页查询第2页,每页有10条记录 select top 10 * from student where sNo>= (select max(sNo) from (select top 11 sNo from student order by sNo asc) temp_max_ids) order by sNo;
以上就是SQL server分页的方法,希望对大家有所帮助。更多mysql学习指路:MySQL
本文转载于php中文网,如有侵犯联系作者修改。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1741/viewspace-2828588/ ,如需转载,请注明出处,否则将追究法律责任。