sql表分页

原创 2005年05月21日 13:16: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

 

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

row_number() over 两表连接分页SQL 一对多的表关系 去重

row_number() over 两表连接分页SQL语句 row_number() over 分页不排序 一对多的表关系 去重...
  • vaecnfeilong
  • vaecnfeilong
  • 2014年09月11日 16:16
  • 1655

SQL server2008 多表联合查询,分页显示结果

数据库两表联立查询所需数据,组合成新表,并结果以分页显示,例:     select * from (select  row_number() over(order by a.id desc) as...
  • Annn_kk
  • Annn_kk
  • 2017年04月17日 09:53
  • 1555

分表后多表,UNION 和UNION ALL查询分页

1.UNION ALL和UNION 的区别 UNION ALL理论上要比UNION的查询效率更高一些,因为UNION会将结果集中的数据进行过滤,将相同的数据进行剔除后返回,而UNIO...
  • QIU1988YANG
  • QIU1988YANG
  • 2017年08月16日 14:40
  • 1289

多表关联的分页SQL经典案例

explain plan for select * from (select a.cert_type, a.cert_no, a....
  • zhaoyangjian724
  • zhaoyangjian724
  • 2014年08月13日 15:59
  • 1344

数据库分页存储过程,支持多表联合查询

数据库分页存储过程,支持多表联合查询 CREATE PROCEDURE [dbo].[getInQuiryAllByPage] @tableNames varchar(5000), --表...
  • gaoxu529
  • gaoxu529
  • 2015年05月21日 16:07
  • 1487

多表联合查询sql存储过程带分页

多表联合查询sql存储过程带分页
  • mofijeck
  • mofijeck
  • 2015年03月04日 14:56
  • 1543

超强版SQL无主键分页

–通用SQL分页(超强版无主键分页!主键可重复)–本存储过程只能在大于sql2005以上版本使用–虽然短短几句话却浓缩我很多精妙之处Create proc [dbo].[PagingSql] (@st...
  • xulingyun20032003
  • xulingyun20032003
  • 2015年06月09日 16:21
  • 999

MySQL 单表分页 Limit 性能优化

主要针对记录非常多的表常用分页sql语句:select * from product limit start, count当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, ...
  • u013372487
  • u013372487
  • 2016年12月06日 18:48
  • 690

SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如...
  • limingblogs
  • limingblogs
  • 2016年04月25日 21:53
  • 1412

SQL分页存储过程和C#中linq分页查询方法

SQL分页存储过程 if exists(select * from sysobjects where name='usp_BookPage') drop procedure usp_BookPage ...
  • zhgl7688
  • zhgl7688
  • 2016年01月27日 12:59
  • 1334
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql表分页
举报原因:
原因补充:

(最多只允许输入30个字)