本篇内容介绍了“SQL server是怎么分页的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1、三重循环
先取前20页,然后倒序,取倒序后前10条记录,这样就能得到分页所需要的数据,不过顺序反了,之后可以将再倒序回来,也可以不再排序了,直接交给前端排序。
-- 设置执行时间开始,用来查看性能的set statistics time on ;-- 分页查询(通用型)select *from (select top pageSize *from (select top (pageIndex*pageSize) *from studentorder by sNo asc ) -- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。 as temp_sum_studentorder by sNo desc ) temp_orderorder by sNo asc-- 分页查询第2页,每页有10条记录select *from (select top 10 *from (select top 20 *from studentorder by sNo asc ) -- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。as temp_sum_studentorder by sNo desc ) temp_orderorder by sNo asc;
2、利用max(主键)
先top前11条行记录,然后利用max(id)得到最大的id,再重新再这个表查询前10条,不过要加上条件,where id>max(id)。
set statistics time on;-- 分页查询(通用型)select top pageSize *from studentwhere sNo>=(select max(sNo)from (select top ((pageIndex-1)*pageSize+1) sNofrom studentorder by sNo asc) temp_max_ids)order by sNo;-- 分页查询第2页,每页有10条记录select top 10 *from studentwhere sNo>=(select max(sNo)from (select top 11 sNofrom studentorder by sNo asc) temp_max_ids)order by sNo;
“SQL server是怎么分页的”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!