项目中sql分页查询语句的总结

   关于项目的分页已经告一段落了,从中得到一个教训,网上的东西也不可尽信,之前有搜到AspNetPager+Gridview分页的,两个步骤比较清晰的都是假分页,后面通过问别人才知道,真分页一定要写分页的查询语句,本质上就是一次查询一部分数据显示出来,而不是一次查询所有数据分页显示。

我采用的是row_number关键字的方法:

利用row_number() over(order by id)函数计算出行数,选定相应行数返回即可,该关键字只有在SQL server 2005版本以上才有,因此适用于sqlserver版本为2005的用户使用,版本05以上的可以采用其他更为简单有效的方法。

SQL语句如下:

-- 分页查询(通用型)
select top pageSize * 
from (select row_number() 
over(order by sno asc) as rownumber,* 
from student) temp_row
where rownumber>((pageIndex-1)*pageSize);
-- pageSize :每页显示数据条数 pageIndex:当前页 sno :主键列 temp_row:需要查询的表名


-- 举例:分页查询第2页,每页显示10条记录
select top 10 * 
from (select row_number() 
over(order by sno asc) as rownumber,* 
from student) temp_row
where rownumber>10;

根据以上查询语句查询出每页需要显示的数据,再搭配我之前关于AspNetPager+Gridview真分页的博客,就可以简单轻松的实现真分页了

猜你喜欢

转载自blog.csdn.net/qq_42450386/article/details/100970573