暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 从有序内部查询中选择的顺序

ASKTOM 2019-01-11
508

问题描述

嗨,汤姆,

从具有order by子句的内部查询中进行选择是否可以保证最终输出按内部查询中的order by列进行排序?

Select 
           * 
       from ( select 
                   * 
              from t 
              order by n);


最终输出是否总是按n排序?

谢谢

专家解答

内部排序未保留的琐碎示例:

create table t as 
  select level c1 , mod ( level, 4 ) c2 
  from   dual
  connect by level <= 100;
  
select c2, count(*) from (
  select * from t
  order  by c2
)
group  by c2;

C2   COUNT(*)   
   1         25 
   2         25 
   3         25 
   0         25 


为了100% 确定数据库以所需的顺序返回行,请在最外层选择中添加order by子句。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论