码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2017-07-19 21:55:48      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:min   table   数据   解决   区别   select   一模一样   字符   class   

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的用法与区别

标签:min   table   数据   解决   区别   select   一模一样   字符   class   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!