Oracle—列序号 rownum,rowid说明

【功能】
rownum和rowid,都属于系统字段,查询数据库中任何表都有该字段,该字段不需要创建。
rownum与rowid的区别:
rownum是逻辑地址序号(随查询结果显示的数据条数而变化),可以限制查询结果的行数;
rowid是物理地址(固定不变的)。

/数据记录的逻辑地址rownum/
【示例】
1)用rownum可以随机抽取表中某几行数据;
示例:select * from tb_det_prov where rownum<10;

2)用rownum可以将已经排序好的结果,提取出TOP(前几名)的排行
示例:统计某表TOP5的数据明细
select *
from
(
select *
from tb_det_prov
order by prov_id desc
)
where rownum <=5 ;

3)rownum可以当表数据的序号使用;
示例:
select rownum ,t.* from tb_det_prov t;
在这里插入图片描述

【注意事项】
1.rownum可以放在where后面当做条件使用,但只能写成rownum<某个数字,或rownum<=某个数字,大于或等于是无法满足的
示例:select * from tb_det_prov where rownum>12;(大于或等于是无法满足的)
在这里插入图片描述

示例1:查询以下表中TOP5的数据
select * from tb_det_prov where rownum<=5;
示例2:查询以下表中TOP20的数据
select * from tb_det_prov where rownum<21;
2.rownum可以放在select后面当做序列使用
示例:select rownum,prov_name from tb_det_prov;

/数据记录的物理地址rowid/
【示例】
1)查询表中的rowid信息;
select rowid ,t.* from tb_det_prov t;
在这里插入图片描述

2)可以用于数据的手工导入,等同于for update的功能(具体详见for update);
select t.*,t.rowid from tdw_lj_01 t;

select * from tdw_lj_01 for update;

3)可以快速删除表中的某条(某部分)数据;
delete from tb_det_prov t where rowid=‘AABve9AAMAAELbrAAA’;
commit;

select decode(rownum,‘1’,‘3’,‘2’,‘8’),rownum
from dual
connect by rownum<=10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值