如果’orderby’值相同,为什么Oracle会返回特定的序列?
发布时间:2020-05-24 09:34:57 所属栏目:MsSql 来源:互联网
导读:我对Oracle中的查询感到困惑,该查询以看似随机的顺序返回. SELECT Date, AmountFROM MyTableWHERE Date = 26-OCT-2010ORDER BY Date 这将返回以下数据: | Date | Amount--------------------------1 | 26-OCT-10 | 852 |
|
我对Oracle中的查询感到困惑,该查询以看似随机的顺序返回. SELECT Date,Amount FROM MyTable WHERE Date = '26-OCT-2010' ORDER BY Date 这将返回以下数据: | Date | Amount -------------------------- 1 | 26-OCT-10 | 85 2 | 26-OCT-10 | 9 3 | 26-OCT-10 | 100 我无法理解为什么数据库以此特定顺序返回数据,或者为什么,因为原始表将以这种方式返回数据. 对TIMESTAMP的转换日期确认所有日期值都是相同的值 – 26-OCT-10 00.00.00.000000000,因此,我可以排除这些值存在差异.但是,当我这样做时,行返回1,3,2的顺序. 这让我很生气,所以如果有人可以解释为什么会这样,那真的有助于抚慰我. 我希望每次运行查询时都会以不同的顺序返回,因为条件的条件在每一行都是相同的(因此使排序保持纯粹的机会). 提前谢谢了. 解决方法排序不是“纯粹的机会” – 除非您将查询修改为:SELECT Date,Amount FROM MyTable WHERE Date = '26-OCT-2010' ORDER BY Date,DBMS_RANDOM.VALUE; 排序是“任意的”.而不是“掷骰子”来决定任意顺序(这会产生一些不必要的成本),Oracle只是按照它遇到的顺序返回数据 – 从短期内的运行开始可能是相同的. (从长远来看,环境中的某些东西可能会发生变化,使得排序不同 – 但仍然是随意的). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- sql – 查看浏览多维数据集时生成的MDX查询
- sql – Flex匹配许多数据库记录(类似Quicksilver
- SQL Server – 在预期条件的上下文中指定的非布尔
- sql-server – 使用sp_executesql从脚本化SP中停
- SQL2005重新生成索引的的存储过程 sp_rebuild_in
- sql – 如何将数据库图从一个服务器移动到另一个
- sql – 按月滚动或运行Oracle总计
- 错误代码:1100 Table t_depart_info was not lo
- sql-server – SQL72043和其他SSDT错误:如何找到
- SQL Server 找出所有非xml索引并重新整理的sql
热点阅读
