看这条分页sql,其中order by statues_row中的statues_row字段不是唯一字段,而是一个必填的状态字段里面例如内容是(1或者2或者3)

 select * from(select * from table order by statues_row desc ) where rownum <4 

多次查询发现select * from table order by statues_row desc 这个结果集是有序的预期目标。

但是当SORT (ORDER BY STOPKEY)后会发现,根据rownum不同,其结果集不同,如果分页的话有可能多页都没有要找的数据

主要原因就是,Oracle 的order By 算法用的是快速排序算法。快速排序算法不是稳定的。所以当不断切换rownum的时候,结果集会展示的数据不同。

ORDER BY STOPKEY,不需要对所有数据进行排序,而是只要找出结果集中的按特定顺序的最前N条记录,一旦找出了这N条记录,就无需再对剩下的数据进行排序,而直接返回结果。

解决办法就是order by 选择唯一性质的字段,主键或是唯一索引字段后就不会出现这个问题。

例如

 select * from(select * from table order by statues_row desc ,id desc ) where rownum <4

Oracle分页排序数据混乱原因及解决相关推荐

  1. oracle 关联出现重复数据,ORACLE 分页查询出现重复记录的解决办法

    今天在用Oracle分页查询数据的时候出现了重复数据,有的数据无法查出,很郁闷,想了想,找了资料,发现问题 分页语句: select * from ( select row_.*, rownum ro ...

  2. oracle pls 00905,【案例】Oracle报错PLS-00714 PLS-00951原因和解决办法笔记

    [案例]Oracle报错PLS-00714 PLS-00951原因和解决办法笔记 时间:2016-11-14 11:07   来源:Oracle研究中心   作者:代某人   点击: 次 天萃荷净 P ...

  3. oracle服务没有了 原因,一例oracle服务无法启动的原因及解决方法

    摘要 腾兴网为您分享:一例oracle服务无法启动的原因及解决方法,智慧农业,月星家居,余额宝,万达普惠等软件知识,以及企鹅精灵,滴滴专车司机版,c4d导入3dmax,阿纯优品,小飞兔,我没有表情包, ...

  4. oracle查询用户时候被锁,Oracle用户被锁的原因及解决办法

    在登陆时被告知test用户被锁 1.用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 sql> alter session set nls_date_format='yyy ...

  5. oracle数据库表中文乱码,oracle数据库中文乱码的原因与解决

    资料: 很久以来,字符集一直是困扰着众多Oracle爱好者的问题,在此我们就这个问题做一些分析和探讨. 首先,我们要明确什么是字符集?字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包括关系 ...

  6. oracle分页排序查询,Oracle分页查询中排序与效率问题解决方法详解

    本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题. 原始未分页查询Sql代码如下: select ROWNUM rn, ...

  7. oracle分页包,Oracle分页获取数据的实现 (包和存储过程)

    本文档主要是介绍针对oracle数据库中利用包和存储过程来实现分页获取数据的内容.其实该存储过程的主题思想及主要实现我也是从网上找的,自己做了整合. 包括包头声明和包体实现部分以及C#代码具体调用部分 ...

  8. Oracle分页排序采坑记录

    项目采用的是Oracle数据库,对一张表进行了排序分页,但由于线上业务中,同一个排序字段的值是完全相同的,此时分页就会出错,因为分页时无法根据这个排序条件进行区别每一页的数据. 解决办法:再加一个排序 ...

  9. oracle分页排序sql,oracle 排序分页 高效sql语句

    最好还是利用分析函数row_number() over ( partition by col1 order by col2 ) 比如想取出100-150条记录,按照tname排序 select tna ...

最新文章

  1. php 云片网对接,php调用云片网接口发送短信的实现方法
  2. android r 编译找不到头文件_kOS(1):编译
  3. CodeForces - 1228B Filling the Grid(思维,水题)
  4. 已知序列求蝶形运算_(数字信号处理选择题.doc
  5. 《java设计模式》之责任链模式
  6. Java在ACM中的应用
  7. nagios监控之(监控配置)
  8. Hadoop源码分析16: IPC流程(11) 整体流程
  9. 赛灵思推7nm加速平台:面向所有场景、所有开放者,AI推理性能提升8倍
  10. PyTorch 入坑十一: 损失函数、正则化----深刻剖析softmax+CrossEntropyLoss
  11. vb.net机房收费系统之组合查询
  12. Linux字符终端用鼠标移动一个红色矩形
  13. 微信开发者工具测试小程序
  14. html网页表格怎么自动添加,Html表格自动生成工具
  15. Android 毕业设计高仿新浪微博客户端(内附源码)
  16. 网卡出现“Windows 仍在设置此设备的类配置。 (代码 56)“
  17. Web测试总结 - 测试用例(文本框)
  18. 计算机教学改革典型案例,高职计算机课程案例化与信息化融合的教学改革探讨...
  19. stup.exe***病毒的手动解决办法
  20. cuda8.0.44linux.run,ubuntu16.04+cuda8.0+cudnn6+tensorflow(gpu)1.4,一遍成功

热门文章

  1. web前端入门学习 css(2)
  2. python signal模块的使用(自定义超时异常)
  3. python 多进程multiprocessing 队列queue报错:AttributeError: Can't pickle local object
  4. easyui树拖拽排序java_easyui tree 拖拽功能并将数据返回后台保存至数据库
  5. Elasticsearch 摄取节点(Ingest Node)常用的数据处理器(Processor)
  6. rails4 mysql2_ruby-on-rails – Rails 4 – Gem :: LoadError:为数据库适配器指定了“mysql2”,但gem未加载...
  7. python ssh登录设备_用Python怎么SSH到网络设备
  8. 史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29完善更新小程序代码,
  9. python做Linux进程运行,Python实现在Linux系统下更改当前进程运行用户
  10. php oop 实际工作,PHP OOP注意点(一)