一、比如查询前20条数据
---------查询前20条数据------------- select * from FRONTENDDEVICE where rownum<=20
二、只查询第二条
----------------只查询第二条数据---------- select * from ( select rownum as rn, t.* from FRONTENDDEVICE t where rownum<=20 ) where rn=2 ;
rownum并不是当作实体数据存放在每一张表中,而是在每一次select查询的时候,根据基表的默认insert顺序由oracle动态分配的,有1才有2,RN表示的是该条数据插入数据库的时候数据库默认给它生成的编号
比如我这样写
select * from ( select rownum as rn, t.* from FRONTENDDEVICE t where rownum<=20 order by t.Deviceno DESC ) where rn=2 ;
执行
select rownum as rn, t.* from FRONTENDDEVICE t where rownum<=20 order by t.Deviceno DESC 数据如下
但是整体执行完后查询的数据还是,并不会是钻石大道与襄州大道那一列的数据,rn的值就代表该条数据生成时的序号
三、查询20条里面的后10条
select * from ( select rownum as rn, t.* from FRONTENDDEVICE t where rownum<=20 ) where rn>10 ;
原文:https://www.cnblogs.com/macT/p/11642680.html