Oracle中使用SQL进行分页的语句、方法,简单易用,呵呵……

原创 2005年03月01日 15:43:00

     看了不少分页方面的文章,感觉还是直接使用SQL来的简单直接,就简单研究了一下……regular_smile.gif
不过,鄙人Oracle数据库方面的知识实在有限,有什么不对之处还请多多指教,效率嘛,不知道怎么测,俺只管好用就行了……red_smile.gif
     小经验:
     select * from tablename where rownum>10 and rownum<20
     像这样的语句是不对的,oracle认为条件不成立,至于为什么这么弱智,俺也不知道……
     rownum只可以用<=来操作,不可以用>=
     select * from tablename where rownum<20
     minus
     select * from tablename where rownum<10
     这样也能达到分页的目的,不过不支持LONG字段,所以还是用下面的吧……
--------------------------------------------------------------------------------------
方法1,据说效率较高
select * from (select rownum idd,t.* from (select * from gsdtlongtest order by id desc) t
where rownum<20) tt where tt.idd>10

select * from (select rownum idd,t.* from (select * from gsdtlongtest order by id desc) t
where rownum<end) tt where tt.idd>start


curpage 当前页
pagenum 每页显示条数

start=(curpage-1)*pagenum
end=start+pagenum+1

最后一页如果不足pagenum无所谓
--------------------------------------------------------------------------------------
方法2(43条记录,每页20条,第2页):
select * from (select * from gsdtlongtest where rownum<=23)
where id not in(select id from gsdtlongtest where rownum<=3) order by id desc

select * from (select * from gsdtlongtest where rownum<=start)
where id not in(select id from gsdtlongtest where rownum<=end) order by id desc

 

start=total-(curpage-1)*pagenum
end=start-pagenum+1

注意:为了减少子查询数,直接按照默认的数据库记录顺序进行分页计算。主键id顺序增加,最新纪录为表中最后一条记录。效率不知道怎么样……

---------------------------------------------------------------------------------------

oracle使用rownum进行分页语句详解

oracle使用rownum进行分页语句详解 rownum和rowid是两种不同的东西,不知道你如何利用rowid来分页? rownum是返回的记录编号。rowid可理解为返回记录的实际地址。当根...

使用sql语句的两种分页方法

使用存储过程 1.使用top方法 --一条一条的访问数据库 Create procedure data_page @num int,--每页的信息数 @i int--接受是第几页 as declare...

SQL分页语句的三种方法的比较

  • 2010年02月09日 08:56
  • 2KB
  • 下载

Oracle中实现分页的sql语句

写了两个有关分页的SQL 语句,希望对大家有点帮助...记住,只能在Oracle下使用 1 获取总页数 Sql代码   SELECT DECODE(mod(C...
  • vebasan
  • vebasan
  • 2011年09月13日 12:04
  • 739

oracle的 分页sql语句

  • 2011年11月27日 19:13
  • 1.32MB
  • 下载

ORACLE中用rownum分页并排序的SQL语句

本文转自:http://www.cnblogs.com/advocate/archive/2010/08/20/1804816.html,未作修改。 ORACLE中用rownum分页并排序的...

ORACLE中用ROWNUM分页并排序的SQL语句

ORACLE中用ROWNUM分页并排序的SQL语句 以前分页习惯用这样的SQL语句: select * from (select t.*,rownum row_num from mytabl...

ORACLE中用rownum分页并排序的SQL语句

转自:http://www.cnblogs.com/advocate/archive/2010/08/20/1804816.html ORACLE中用rownum分页并排序的SQL语句 ...
  • wfs3009
  • wfs3009
  • 2017年01月18日 13:15
  • 102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle中使用SQL进行分页的语句、方法,简单易用,呵呵……
举报原因:
原因补充:

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