Oracle分页排序数据混乱原因及解决
看这条分页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分页排序数据混乱原因及解决相关推荐
- oracle 关联出现重复数据,ORACLE 分页查询出现重复记录的解决办法
今天在用Oracle分页查询数据的时候出现了重复数据,有的数据无法查出,很郁闷,想了想,找了资料,发现问题 分页语句: select * from ( select row_.*, rownum ro ...
- oracle pls 00905,【案例】Oracle报错PLS-00714 PLS-00951原因和解决办法笔记
[案例]Oracle报错PLS-00714 PLS-00951原因和解决办法笔记 时间:2016-11-14 11:07 来源:Oracle研究中心 作者:代某人 点击: 次 天萃荷净 P ...
- oracle服务没有了 原因,一例oracle服务无法启动的原因及解决方法
摘要 腾兴网为您分享:一例oracle服务无法启动的原因及解决方法,智慧农业,月星家居,余额宝,万达普惠等软件知识,以及企鹅精灵,滴滴专车司机版,c4d导入3dmax,阿纯优品,小飞兔,我没有表情包, ...
- oracle查询用户时候被锁,Oracle用户被锁的原因及解决办法
在登陆时被告知test用户被锁 1.用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 sql> alter session set nls_date_format='yyy ...
- oracle数据库表中文乱码,oracle数据库中文乱码的原因与解决
资料: 很久以来,字符集一直是困扰着众多Oracle爱好者的问题,在此我们就这个问题做一些分析和探讨. 首先,我们要明确什么是字符集?字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包括关系 ...
- oracle分页排序查询,Oracle分页查询中排序与效率问题解决方法详解
本文将结合作者近日工作中,在ORACLE数据库分页查询时,遇到一个小问题,为大家讲解如何解决Oracle分页查询中排序与效率问题. 原始未分页查询Sql代码如下: select ROWNUM rn, ...
- oracle分页包,Oracle分页获取数据的实现 (包和存储过程)
本文档主要是介绍针对oracle数据库中利用包和存储过程来实现分页获取数据的内容.其实该存储过程的主题思想及主要实现我也是从网上找的,自己做了整合. 包括包头声明和包体实现部分以及C#代码具体调用部分 ...
- Oracle分页排序采坑记录
项目采用的是Oracle数据库,对一张表进行了排序分页,但由于线上业务中,同一个排序字段的值是完全相同的,此时分页就会出错,因为分页时无法根据这个排序条件进行区别每一页的数据. 解决办法:再加一个排序 ...
- oracle分页排序sql,oracle 排序分页 高效sql语句
最好还是利用分析函数row_number() over ( partition by col1 order by col2 ) 比如想取出100-150条记录,按照tname排序 select tna ...
最新文章
- php 云片网对接,php调用云片网接口发送短信的实现方法
- android r 编译找不到头文件_kOS(1):编译
- CodeForces - 1228B Filling the Grid(思维,水题)
- 已知序列求蝶形运算_(数字信号处理选择题.doc
- 《java设计模式》之责任链模式
- Java在ACM中的应用
- nagios监控之(监控配置)
- Hadoop源码分析16: IPC流程(11) 整体流程
- 赛灵思推7nm加速平台:面向所有场景、所有开放者,AI推理性能提升8倍
- PyTorch 入坑十一: 损失函数、正则化----深刻剖析softmax+CrossEntropyLoss
- vb.net机房收费系统之组合查询
- Linux字符终端用鼠标移动一个红色矩形
- 微信开发者工具测试小程序
- html网页表格怎么自动添加,Html表格自动生成工具
- Android 毕业设计高仿新浪微博客户端(内附源码)
- 网卡出现“Windows 仍在设置此设备的类配置。 (代码 56)“
- Web测试总结 - 测试用例(文本框)
- 计算机教学改革典型案例,高职计算机课程案例化与信息化融合的教学改革探讨...
- stup.exe***病毒的手动解决办法
- cuda8.0.44linux.run,ubuntu16.04+cuda8.0+cudnn6+tensorflow(gpu)1.4,一遍成功
热门文章
- web前端入门学习 css(2)
- python signal模块的使用(自定义超时异常)
- python 多进程multiprocessing 队列queue报错:AttributeError: Can't pickle local object
- easyui树拖拽排序java_easyui tree 拖拽功能并将数据返回后台保存至数据库
- Elasticsearch 摄取节点(Ingest Node)常用的数据处理器(Processor)
- rails4 mysql2_ruby-on-rails – Rails 4 – Gem :: LoadError:为数据库适配器指定了“mysql2”,但gem未加载...
- python ssh登录设备_用Python怎么SSH到网络设备
- 史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29完善更新小程序代码,
- python做Linux进程运行,Python实现在Linux系统下更改当前进程运行用户
- php oop 实际工作,PHP OOP注意点(一)