首页 > 数据库技术 > 详细

oracle 之 伪列 rownum 和 rowid的用法与区别

时间:2017-07-19 21:29:41      阅读:374      评论:0      收藏:0      [点我收藏+]

rownum的用法

select  rownum,empno,ename,job from emp where rownum<6

可以得到小于6的值数据

select rownum,empno,ename,job from emp where rownum>6 and rownum<10

得不到数据  原因:oracle 中首先会产生编号为1的数据,也就是不满足条件,那么后面的同样会继续产生第二条数据同时也是编号为1,所以最后得不到数据

解决方案:可以将select rownum,empno,ename,job from emp变成一个子查询

rowid的用法   可以去重复数据

同rownum伪列不同的是,他是物理存在,rowid是一种数据类型,基于64位编码的18个字符来唯一标志一条记录物理位置的一个id,rowid可以在表中进行查询,但是其值并未存储在表中,所以不支持增删改操作

例如:有两条一模一样的数据

delete from TableName where rowid not in (select min(rowid) from TableName group by 列名

 

oracle 之 伪列 rownum 和 rowid的用法与区别

原文:http://www.cnblogs.com/zmztya/p/7207756.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!