在Oracle中巧用rownum实现分页

转帖|其它|编辑:郝浩|2009-04-08 15:10:41.000|阅读 519 次

概述:本文简单介绍了在Oracle中使用用rownum实现分页的方法

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  系统环境solaris,oracle815。

  笔者在工作中有一上百万条记录的表,在jsp页面中需对该表进行分页显示,便考虑用rownum来作,下面是具体方法(每页显示20条):

  “select * from tabname where rownum<20 order by name"

  但却发现Oracle却不能按自己的意愿来执行,而是先随便取20条记录,然后再order by,后经咨询oracle,说rownum确实就这样,想用的话,只能用子查询来实现先排序,后rownum,方法如下:

  "select * from (select * from tabname order by name) where  rownum<20",

  但这样一来,效率会较低很多。

  后经笔者试验,只需在order by的字段上加主键或索引即可让oracle先按该字段排序,然后再rownum;方法不变:

  “select * from tabname where rownum<20 order by name"

  经反复验证,都没有问题。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP