一条sql 语句搞定数据库分页

来源:asp之家 时间:2009-03-21 18:32:00 

一条语句搞定数据库分页

select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

10 = 每页记录数

20 = (当前页 + 1) * 每页记录数

以上语句即可以实现分页,但是最后取出的结果排序是升序,如果需要结果集为降序(例如时间),则有两种方法可以处理

1.使用以下语句,但效率可能要降低一些

select * from 表名 b, (select top 10 主键字段,排序字段 from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a order by 排序字段 ) c where b.主键字段 = c.主键字段 order by c.排序字段 desc 

2.在ado里处理,将记录集游标移到最后,然后前移

''以下为asp范例

set rsTemp = Server.CreateObject("adodb.recordset") 

rsTemp.Open 语句,conn,1,1 

rsTemp.MoveLast 

for i = 1 to rsTemp.RecordCount

'取值.... 

rsTemp.MovePrevious 

next 

经测试,以上分页方法比使用临时表分页速度还要快,并且简单易用

标签:sql,分页,数据库
0
投稿

猜你喜欢

  • 使用正则表达式找出不包含特定字符串的条目

    2010-03-02 22:06:00
  • 采用XML数据来填充ASP表单

    2008-05-04 13:32:00
  • 初学MySql5 所应了解的知识和常见问题

    2009-03-06 17:49:00
  • 鼠标经过超链时的提示图层源码

    2010-03-17 20:51:00
  • 如何使用Script Encoder?

    2010-06-05 12:42:00
  • js关于 byval 与 byref 的区别

    2007-10-13 10:48:00
  • 让复杂导航设计变得简单

    2008-01-07 11:50:00
  • Web 2.0 框架发布

    2008-03-25 09:40:00
  • asp连接mysql的问题(端口)

    2009-08-21 13:23:00
  • SQL提供的进行数据传输的实用程序—BCP

    2009-01-23 13:45:00
  • 弹出对话框,点击跳出一个可拖动的层(对话框)

    2009-09-07 12:56:00
  • 利用XMLHTTP检测网址及探测服务器类型

    2009-04-24 15:12:00
  • 信息分类是为了更好的索引

    2010-02-04 17:51:00
  • 空行不空格式排版组织原理

    2010-05-03 14:46:00
  • 页面中图像格式的选用之我见

    2007-10-31 18:11:00
  • asp下过滤非法的SQL字符的函数代码

    2011-03-03 11:23:00
  • Web UI 设计(网页设计)命名规范

    2009-05-13 13:06:00
  • Discuz!NT 论坛整合ASP程序论坛

    2011-03-31 10:40:00
  • 如何优化JavaScript脚本的性能

    2008-02-19 21:47:00
  • IE9硬件加速性能远超Chrome5.0和Firefox4.0

    2010-06-09 11:12:00
  • asp之家 网络编程 m.aspxhome.com