在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在ORACLE中的哪一个数据文件、块、行上;在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大rowid的就可以了,其余全部删除。
- 实现方法:
SQL> create table test( 2 name varchar(50),
3 sex varchar2(2)
4 ) 5 /
<br>
delete from test a where a.rowid!=(select max(rowid) from test b where a.name=b.nameand a.sex=b.sex);
Oracle数据库删除重复记录方法
博客介绍了在Oracle数据库中删除重复记录的方法。利用每条记录唯一的rowid,确定重复记录中具有最大rowid的记录,其余全部删除,并给出了创建测试表及删除重复记录的SQL语句示例。
1457

被折叠的 条评论
为什么被折叠?



