sqlserver中的翻页
来源:互联网 发布:安卓埋雷软件破解授权 编辑:程序博客网 时间:2024/05/09 04:05
sqlserver中没有类似oralce中的伪列。所以不能用这个属性来进行分页。
这是我最近搞的一个关于sqlserver的分页,不知道对你有没有帮助:
我们知道,sqlserver中,top关键字是用来取前n条记录的。如果想得到查询结果集中的前20条数据,则sql语句如下:
select top 20 * from x_user ;
方法1:
对于一般的表,id都是基于一种规则顺序往下走的。一般情况下,是自动增一的。这里也就只能讨论这种情况,对于个别的情况,如果以后项目遇到了,我会再继续玩玩得。不过对于目前绝大多数的id自增的情况是适用的。所以,我们可以钻一个空子:
select top 20 * from x_user order by uid ;
这样,就可以根据uid来排序进行取数据的操作。这是第一页的情况。由于id是自增的,所以第二页的第一条记录的id肯定比上一页的大。并且都是顺序排列的。因此,第二页的sql可以如下表示:
select top 20 * from x_user where uid > 上一页最后的id order by uid ;
第三页,第四页...... 以此类推。只要找到上一页的最后一个id就行了。
哈哈。相当简单的吧。这是下一页的操作。至于上一页,用法是一样的。不过这里需要注意的是:上一页的条数的那个id需要减去2倍的每页显示条数。这是为什么呢?
举例说明:
1,2,3,4,5 第一页 最后的id = 5
6,7,8,9,10 第二页 最后的id = 10
11,12,13,14 ,15 第三页 最后的id = 15
我们从第一页翻到第二页的sql是:select top 20 * from x_user where uid > 5 order by uid ;记住,这个id是5!!
假如我们从第三页想返回第二页。第三页的最后一个id是15。所以15-5=10 。正好是每页显示条数的2倍。
换句话说,从第三页返回到第二页,这个sql语句中的id其实记录的是第一页的最后一个id。所以需要减去2倍的每页显示条数。
方法2 :
用between ... and ... 关键字。
select top 20 * from x_user where uid between 10 and 20 order by uid;
这样直接就能得到啦。省事吧?不过这2种都仅限于id是那种规则自增的方式。如果你非要搞个随机数,日期什么的。恐怕就不行了。不过谁还用那玩意啊?对于绝大多数的项目都好使就行啊。哈哈
好了。就这么,继续忙项目了。:)
- sqlserver中的翻页
- sqlserver翻页
- sqlserver的翻页sql
- iphone中的翻页效果
- Vim中的翻页命令
- VIM中的翻页命令
- 数据在窗体中的翻页
- ASP程序中的翻页模块
- 数据在窗体中的翻页
- python收集网页中的翻页
- Sqlserver 索引和数据优化(附:翻页代码)
- 翻页
- 翻页
- 翻页
- 翻页
- 翻页
- 翻页
- ASP项目中的公共翻页模块
- 用户出口
- ASP.NET实现邮件发送
- C#实现多级GridView多级数据表
- 为什么有的用EVC建的EXE程序,在PC机上看不到EXE程序属性页的版权信息呢?
- 身份证验证 根据身份证得到生日性别 实现Trim功能
- sqlserver中的翻页
- 一个非常实用的javascript读写Cookie函数
- 堆和栈区别
- 水晶报表的宽度调整方法(设计器、代码调整、rpt文件属性)
- DataGridView中cell 值的控制
- 厅、部、局、司区分大小
- 获取SAP系统用户出口列表
- 如何调整ABAP程序的性能
- Facade外观模式 ---设计模式学习