删除表中重复记录数据
2008-07-05 17:15
218 查看
(1)通过建立临时表来实现
SQL>create table temp_emp as (select distinct * from employee)
SQL> truncate table employee; (清空employee表的数据)
SQL> insert into employee select * from temp_emp; (再将临时表里的内容插回来)
( 2)通过唯一rowid实现删除重复记录.在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大或最小rowid的就可以了,其余全部删除。
(3)也是通过rowid,但效率更高。
SQL>delete from employee where rowid not in (
select max(t1.rowid) from employee t1
group by t1.emp_id,t1.emp_name,t1.salary
);--这里用min(rowid)也可以。
SQL>create table temp_emp as (select distinct * from employee)
SQL> truncate table employee; (清空employee表的数据)
SQL> insert into employee select * from temp_emp; (再将临时表里的内容插回来)
( 2)通过唯一rowid实现删除重复记录.在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大或最小rowid的就可以了,其余全部删除。
(3)也是通过rowid,但效率更高。
SQL>delete from employee where rowid not in (
select max(t1.rowid) from employee t1
group by t1.emp_id,t1.emp_name,t1.salary
);--这里用min(rowid)也可以。
相关文章推荐
- MySQL下删除重复记录只保留一条数据
- SQL删除数据表中重复记录中的一条
- 删除重复数据记录
- Oracle删除重复记录只保留一条数据的几种方法
- oracle中删除重复数据(几个字段相同的数据为相同记录)
- Oracle查询重复数据并删除,只保留一条记录
- 如何删除数据表中重复的记录
- 删除不同粒度的事实表记录中重复的度量值数据的SQL语句
- 使用SQL语句对重复记录查询、统计重复次数、删除重复数据
- Oracle删除重复记录只保留一条数据的几种方法
- 删除数据库表中的重复冗余记录,以及随机取N条数据的方法
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- sql删除某一字段的重复记录(500万条数据以上)
- Oracle查询重复数据并删除,只保留一条记录
- 删除数据中重复的记录
- 查询及删除数据重复记录的方法
- 删除表中的重复记录数据
- oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录) 转