唯一本尊 2017-06-10 02:45 采纳率: 25%
浏览 2037
已采纳

ORACLE大数据排序order BY分页问题

图片说明
查询语句如下:
select ORG_ID , rn from (
SELECT
ORG_ID, rownum as rn
FROM TEMP_ORG order by org_id )
where rn > 10000 and rn < 150000
数据量小的时候rn和id的排序是一致的,都是ASC,但是当数据量变到足够大的时候
rn变成乱序的了,这到底是什么原因?还有就是分页查询应该order by rn ?

  • 写回答

9条回答 默认 最新

  • 千年514 2017-06-11 14:21
    关注

    select o.ORG_ID, o.rn
    from (select i.ORG_ID, rownum as rn
    from (SELECT ORG_ID FROM TEMP_ORG order by org_id) i /*内层进行*/
    where rownum < 150000) o /*第二层取最大*/
    where o.rn > 10000 /*第一层取最小*/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 梦里_人 2017-06-10 16:57
    关注

    用这个
    select b.* from
    (select rownum rn,a.* from
    (select teo.* from TEMP_ORG teo orser by org_id) a) b
    where b.rn < 150000 and b.rn > 10000;

        先排序,在分页,然后使用条件查询
    
    评论
  • 枯木_叶 2017-06-10 03:15
    关注

    order by 提到外面一层试试

    评论
  • 唯一本尊 2017-06-10 03:30
    关注

    我百度到解决方法,但是原因是什么呢,百度看到三层select可以解决问题

    评论
  • yinghuacao_dong 2017-06-10 07:29
    关注

    rownum是动态加载的,有当前行就加载到当前行,在使用时只能用rownum<=?不能使用>,例如只有10行记录,rownum取不到11的。所以当你把rownum筛选来在根据他进行筛选出就会不一致

    评论
  • 千年514 2017-06-11 14:20
    关注
    
    

    select o.ORG_ID, o.rn
    from (select i.ORG_ID, rownum as rn
    from (SELECT ORG_ID FROM TEMP_ORG order by org_id) i
    where rownum < 150000) o
    where o.rn > 10000

    评论
  • 庄粟 2017-06-15 04:02
    关注

    ASC是什么意思求解,
    order by 是取出数据后再排,也就是说id对应的rn生成后再以id排序,如果id不是自增那rn就会乱

    评论
  • 叶之秋 2017-06-26 07:10
    关注

    select *
    from (select ORG_ID, rownum as rn
    from (SELECT ORG_ID FROM TEMP_ORG order by org_id))
    where rn > 10000
    and rn < 150000

     试试这样查询
    
    评论
  • 唯一本尊 2017-08-23 06:17
    关注

    多谢大家的回答,虽然问题我自己已经解决了,比较高效的应该是我采纳的那种方法,希望能给后人有帮助

    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 如何在EXCEL某单元格中查找是否存在另一列中的内容。
  • ¥50 非对称加密(相关搜索:密码学)
  • ¥15 关于非编程寻迹小车的分析
  • ¥15 java导出EXCEL这里已经执行成功了,但是流浪器没有下载
  • ¥15 帮我把代码改的能正常运行就行
  • ¥50 有限元修正、模型修正、最小二乘法,详细步骤
  • ¥15 用plc编写梯形程序
  • ¥15 关于#物联网#的问题:新大陆AIOT中,按照手册教程进行添加,设置完成后网关一直不上线,显示Never这是网络服务的信息
  • ¥15 这个要用一维热方程但是我不知道怎么运用这个公式
  • ¥15 OpenFOAM多孔介质传热模型建模