在Oracle中,rownum和rowid是平时经常用到的。比如rownum经常用于分页查询,rowid用于排重或者快速定位到记录。

对rownum跟order by配合下的生成时机一直没有具体研究过,只是用的时候如果不确定就用数据测试一下,这次记录一次测试过程。

TEST表数据如下,

对Oracle的rownum生成时机的理解

执行如下sql,

select rownum, b.* 
from test b 
where b.num is not null 

结果如下

对Oracle的rownum生成时机的理解

再执行如下sql,

select rownum, b.* 
from test b 
where b.num is not null 
order by b.str

结果如下

对Oracle的rownum生成时机的理解

比较两个结果可知,rownum在where条件后即生成,且在order by之前。 

 

相关文章:

  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2022-01-07
猜你喜欢
  • 2022-02-10
  • 2021-08-18
  • 2021-06-26
  • 2021-09-26
  • 2022-02-10
  • 2022-01-28
相关资源
相似解决方案