伪列:Oracle 中伪列就像一个表列(表中的列),但是它并没有存储在表中,伪列可以从表中查询,但不能插入、更新和删除它们的值
常用的伪列有ROWID和ROWNUM。
ROWID的使用——快速删除重复的记录
解析:ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置。
ROWID可以分为物理rowid和逻辑rowid两种。
普通的表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid。
当表中有大量重复数据时,可以使用ROWID快速删除重复的记录。
查询语句:
select rowid,rownum from student
ROWNUM
ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数
通过测试可知,Rownum只能对=1和<N进行筛选,如果>M不能筛选,如何规避。
通过子查询构建临时表,让伪列Rownun称为临时表中的列,然后限定条件使用伪列的
别名。
利用伪列查询伪列编号等于2的数据
select *from
(
select id,name,rownum rn from student
) temp
where rn =2
利用伪列查询第4-6条数据
select *from
(
select temp.*,rownum rn from
(
select *from student
) temp
where rownum<=6
)where rn>=4