SqlServer实现先将所有数据排好序再进行分页
2016-10-26 22:24
225 查看
平时,我们对数据进行分页,然后将分页后的数据再进行排序输出。这样做只是针对每次请求,也就是前TOP个数据进行了排序,并不是将数据库中的所有的数据进行了排序。当我们需要将数据库中的所有数据排序后在进行分页输出时该怎么做呢?
总体思路是:使用SqlServer中的ROW_NUMBER() OVER(按某一属性升序或降序)函数来对我们所有的数据进行排序,从1开始,为每一条分组记录返回一个数字。
使用:SELECT * FROM (SELECT *,row=row_number() OVER(ORDER BY name DESC) FROM tableOne ) AS rowTable WHERE rowTable BETWEEN + ((curPage.intValue() - 1) * PageCount.intValue() + 1) + " AND " + curPage.intValue()*PageCount.intValue();
这句话的意思就是先将tableOne中所有的数据按照name字段的降序排好序作为新表rowTable,然后按照当前页curPage和每页行数PageCount进行分页,因为排序是从1开始的,所以PageCount也是从1开始,这样就可以做到先将所有数据排序在进行分页。
总体思路是:使用SqlServer中的ROW_NUMBER() OVER(按某一属性升序或降序)函数来对我们所有的数据进行排序,从1开始,为每一条分组记录返回一个数字。
使用:SELECT * FROM (SELECT *,row=row_number() OVER(ORDER BY name DESC) FROM tableOne ) AS rowTable WHERE rowTable BETWEEN + ((curPage.intValue() - 1) * PageCount.intValue() + 1) + " AND " + curPage.intValue()*PageCount.intValue();
这句话的意思就是先将tableOne中所有的数据按照name字段的降序排好序作为新表rowTable,然后按照当前页curPage和每页行数PageCount进行分页,因为排序是从1开始的,所以PageCount也是从1开始,这样就可以做到先将所有数据排序在进行分页。
相关文章推荐
- 【EntityFramework系列教程三,翻译】在ASP.NET MVC程序中使用EntityFramework对数据进行排序、过滤筛选以及实现分页
- 对数据库中的数据进行分页处理的实现
- vuejs2.0实现分页组件,使用$emit进行事件监听数据传递
- vuejs2.0实现分页组件,使用$emit进行事件监听数据传递
- 润乾V4 报表设计时针对数据每7行进行一次分页,少于7行的补齐如何实现呢?
- Repeater 实现分页、自行绑定数据,对Repeater 进行镶嵌使用
- js 拉取所有数据,前端进行分页处理
- 从后台一次查询所有数据,在前端用js进行分页处理,不再次走数据库
- 用jsp进行数据分页显示的一个实现
- 【用jsp进行数据分页显示的一个实现】
- 对数据进行分页显示到table中的实现方法
- 纯js实现分页 原理:所有数据已加载好,js通过遍历部分显示,实现分页效果
- json一次取所有数据,然后在前后进行分页显示
- asp.net 站内搜索功能的实现及利用datatable绑定数据并进行分页
- C#实现杀掉MSSQL中数据库当前连接的所有进程(进行数据还原的时候需要用到)
- ASP.NET GridView 直接进行数据的修改和分页的实现
- vuejs2.0实现分页组件,使用$emit进行事件监听数据传递
- 纯js实现分页 原理:所有数据已加载好 js通过遍历部分显示 实现分页效果
- 用jsp进行数据分页显示的一个实现
- vuejs2.0实现分页组件,使用$emit进行事件监听数据传递