oracle中rownum对排序的影响及解决方法


 1. 标准的rownum分页查询使用方法:

    select *
      from (select c.*, rownum rn from content c)
     where rn >= 1
       and rn <= 5


    2. 但是如果, 加上order by addtime 排序则数据显示不正确

    select *
      from (select c.*, rownum rn from content c order by addtime)
     where rn >= 1
       and rn <= 5


    解决方法,再加一层查询,则可以解决,

    select *
      from (select rownum rn, t.*
              from (select title, addtime from content order by addtime desc) t)
     where rn >= 1
       and rn <= 5

    如果要考虑到效率的问题,上面的还可以优化成(主要两者区别)

    select *
      from (select rownum rn, t.*
              from (select title, addtime from content order by addtime desc) t
             where rownum <= 10)
     where rn >= 3

本文作者:



相关阅读:
Windows7安装和部署时的相关问题
一个网马的tips实现分析
Js+CSS实现的间断和不间断文本滚动代码
PHP函数使用说明(补充)
php 面向对象的一个例子
php程序员一般都忽略了的几点精华
一个javascript框架应有的功能
Oracle创建DATABASE LINK分析
IIS中的MIME格式
linux下screen命令的使用
让你的博文自动带上缩址的实现代码,方便发到微博客上
编写通用的asp防注入程序
JS+FLASH幻灯片播放图片脚本,整理了代码,使得调用更加方便!
一招让你的Win XP飞起来
快速导航

Copyright © 2016 phpStudy |