Oracle中rownum与order by的执行顺序


执行顺序
Oracle会先设置行的rownum,再进行order by
执行顺序:rownum > order by

正确的写法应该是先order by,先包一层查询,再赋rownum值

select *
from (select rownum rno, t1.*
from (select *
from (select sysdate + level level_ from dual connect by level <= 10) t
order by level_ desc) t1) t2
where t2.rno <= 3

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM