对Oracle的rownum生成时机的理解
在Oracle中,rownum和rowid是平时经常用到的。比如rownum经常用于分页查询,rowid用于排重或者快速定位到记录。
对rownum跟order by配合下的生成时机一直没有具体研究过,只是用的时候如果不确定就用数据测试一下,这次记录一次测试过程。
TEST表数据如下,
执行如下sql,
select rownum, b.* from test b where b.num is not null
结果如下
再执行如下sql,
select rownum, b.* from test b where b.num is not null order by b.str
结果如下
比较两个结果可知,rownum在where条件后即生成,且在order by之前。
清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己
-- 共勉