SqlServer实现先将所有数据排好序再进行分页
2024-08-25 23:51:19
平时,我们对数据进行分页,然后将分页后的数据再进行排序输出。这样做只是针对每次请求,也就是前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开始,这样就可以做到先将所有数据排序在进行分页。
最新文章
- CSS的浮动和清除
- HDU 5815 - Golden Week
- cocos2d-x 精灵的创建和基本使用
- CentOS6.5下安装mfs分布式存储(转)
- ReportView动态加载带参数的RDCL文件及子报表
- python selenium 模块
- Python中字符串二三事
- 基于Aspectj 注解实现 spring AOP
- mybatis中设置打印sql语句application.yml
- C#List源码
- 让用户输入一个日期字符串,将其转换成日期格式, 格式是(yyyy/MM/dd,yyyyMMdd,yyyy-MM-dd)中的一种, 任何一种转换成功都可以; 如果所有的都无法转换,输出日期格式非法。
- 深港DJ好听的歌曲
- mybatis 无法自动补全,没有获得dtd文件
- 00006 - Linux中使用export命令设置环境变量
- Mybatis多个in查询
- Android获取actionbar高度和StatusBar高度的方法
- [Issue]git做rebase时,弹出编辑器为nano,不会使用
- diskspd的使用
- [QT_FFMPEG]学习问题: 刚开始移植ffmpeg,测试时出现 undefined reference to `avcodec_configuration()'
- easyui的filebox过滤文件