`
老竹枝
  • 浏览: 79156 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle Order By 排序问题

阅读更多
  最近在一个应用中,发现报表分页后丢失记录,但是记录总数是一样的。经过仔细检查SQL确认语句正确,而且如果不分页的话出来的数据就是正确的。怀疑Oracle的order by 算法是不稳定排序算法。
  经过测试,发现确实如此。如果排序的列存在大量相同记录,而且没有索引的话,每次执行相同语句得到的记录排序是不确定的(其实Oracle相关文档里面有提及)。
  在排序中增加主键或者rowid,问题解决。
分享到:
评论

相关推荐

    Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出

    主要介绍了Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出的方法,其中ORDER BY的排序结果需要注意其是否稳定,需要的朋友可以参考下

    解决Oracle分页查询中排序与效率问题

    解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题

    oracle使用order by排序null值如何处理

    oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定NULL值排在最前面或者最后面,本文将介绍如何处理oracle 空值排序,需要的朋友可以参考下

    oracle-sort-order-by.rar_oracle_sort - order

    oracle数据库的日文排序机制解析,对日外包软件开发经常会用到

    orcale 数据库中order by 的一些高级用法

    oracle数据库中order by的一些高级用法,该文件中,从order by的基本应用到order by的高级运用,该文件中均有体现

    数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)

    Oracle查询结果集,随机排序 代码如下:select * from table1 order by dbms_random.value(); MySQL随机查询出一条记录: 代码如下: — 下面的查询语句效率高,不要使用 SELECT * FROM table1 ORDER BY rand() LIMIT ...

    Oracle 中文字段进行排序的sql语句

    1)按笔画排序 select * from Table order by nlssort(columnName,’NLS_SORT=SCHINESE_STROKE_M’) 2)按部首排序 select * from Table order by nlssort(columnName,’NLS_SORT=SCHINESE_RADICAL_M’) 3)按拼音...

    深入oracle特定信息排序的分析

    在Oracle查询中,如果在没有排序,但又想让某列中特定值的信息排到前面的时候,使用oracle的decode(字段,’字段值’,数字) 如 select name from user 查询出来的所有数据,如果想让 name=’张三’ 结果排到前面,则...

    sql正负数排序示例

    select * from t1 order by sign(A) desc,abs(A) asc

    oracle分析函数在BI分析中应用事例

    分析函数应用: ...Order by 跟排序字段,range时只能按一个字段排序,使用rows是可以跟多个字段排序 Range 可以使用range 100 preceding 也可跟between and 2、主题分析使用较多的分析函数讨论 Ⅰ、排序分析

    Oracle中利用哈希函数提高查询速度

    当表中存在大量键值的时候,你就会开始发现由于存在许多簇...在Oracle 10g 中,你可以将一个数据定义为“natural order” ,那么就可以不用经过排序而以你所希望的顺序来检索哈希簇的数据,从而解决了上面的提出问题。

    Oracle数据库中对null值的排序及mull与空字符串的区别

    在Oracle中规定,在Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前。所以,为何分析数据的直观性方便性,我们需要对null的记录值进行相应处理。 这是四种oracle排序中...

    Oracle常用script

    Oracle常用12个脚本script: 1、查看当前所有对象 2、建一个和a表结构一样的空表 3、察看数据库的大小,和空间使用...11、视图中不能使用order by,但可用group by代替来达到排序目的 12、通过授权的方式来创建用户

    Mysql利用group by分组排序

    MySQL的group by与Oracle有所不同,查询得字段可以不用写聚合函数,查询结果取得是每一组的第一行记录。 利用上面的特点,可以利用mysql实现一种独特的排序; 首先先按某个字段进行order by,然后把有顺序的表进行...

    oracle公司内部的培训资料

    Les02 : 过滤和排序数据[where / order by] Les03 : 单行函数[字符/数值/日期/转换/通用] Les04 : 多表查询 Les05 : 分组函数 Les06 : 子查询 Les07 : iSQL*Plus Les08 : 处理数据[DML:UPDATE/INSERT INTO/DELETE ...

    Oracle用decode函数或CASE-WHEN实现自定义排序

    对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序。但排序规则是默认的,数字、时间、字符串等都有自己默认的排序规则。有时候需要按自己的想法来排序,而不是按字段默认排序规则...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    1.5.6 ORDERBY子句 13 1.6 INSERT语句 14 1.6.1 单表插入 14 1.6.2 多表插入 15 1.7 UPDATE语句 17 1.8 DELETE语句 20 1.9 MERGE语句 22 1.10 小结 24 第2章 SQL执行 25 2.1 Oracle架构基础 25 2.2 SGA-...

Global site tag (gtag.js) - Google Analytics