Oracle中rownum的说明及使用技巧

一、比如查询前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 ;

 

posted on 2019-10-09 16:35  红磨坊后的白桦树  阅读(448)  评论(0编辑  收藏  举报