`
sunbin
  • 浏览: 341829 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle 分页

阅读更多

 

 

mssql一个top就解决了分页问题。mysql使用limit也可以方便的经行分页,oracle没有提供分页的相关命令,不过可以利用“rownum”进行分页。

首先必须明确

    rownum分配,先有结果集后分配rownum

    rownum 永远从1开始分配,

    rownum在小于等于的情况下可以得到结果集

    rownum在使用>n(1开始的任何数)得不到结果集

    rownum在使用>=1可以得到所有的结果集

  

    rownumoracle 动态分配的,要分页必须固定rownum的值,方法:子查询

 

select t.id,t.name,t.password,t.email,t.phone from  (select rownum rn,id,name,password,email,phone,valid " + "from cms_user where rownum<? and name like ? ) t where t.rn>=?

 

不过这种查询的方式效率极其低下、小型应用还能承受,一旦数据稍大就绝对不能使用。

不过稍微修改一下效率会稍好一点,但同样不建议使用于大型应用中,但是要在程序中建一个变量记录最后一条记录的id

 

select t.id,t.name,t.password,t.email,t.phone from  (select rownum rn,id,name,password,email,phone,valid " + "from cms_user where id > ? rownum<? and name like ? ) t where t.rn>=?

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics