Oracle中删除重复记录整理
2014-03-19 18:47
330 查看
Oracle中经常会删除一些重复记录,整理一下以备用
举例:
第一种方法:
适用于有少量重复记录的情况(临时表法):
--(建一个临时表用来存放重复的记录)
--(清空表的数据,但保留表的结构)
--(再将临时表里的内容反插回来)
第二种方法
适用于有大量重复记录的情况
第三种方法:
适用于有少量重复记录的情况
举例:
create table t_table (id NUMBER, name VARCHAR2(20) ); insert into t_table values (1234, 'abc'); insert into t_table values (1234, 'abc'); insert into t_table values (1234, 'abc'); insert into t_table values (3456, 'bcd'); insert into t_table values (3456, 'bcd'); insert into t_table values (7890, 'cde');
第一种方法:
适用于有少量重复记录的情况(临时表法):
--(建一个临时表用来存放重复的记录)
--(清空表的数据,但保留表的结构)
--(再将临时表里的内容反插回来)
create table tmp_table as select distinct * from t_table; truncate table t_table; insert into t_table select * from tmp_table;
第二种方法
适用于有大量重复记录的情况
delete t_table where (id,name) in (select id,name from t_table group by id,name having count(*)>1) and rowid not in (select min(rowid) from t_table group by id,name having count(*)>1);
第三种方法:
适用于有少量重复记录的情况
delete from t_table a where a.rowid!=(select max(b.rowid) from t_table b where a.id=b.id and a.name=b.name);
相关文章推荐
- oracle笔记整理5——delete与truncate,rowid与rownum,删除重复记录
- Oracle删除重复记录oracle 删除重复记录的高效方法 && mysql 删除重复记录方法
- oracle删除重复记录的方法
- Oracle几种查找和删除重复记录的方法总结
- oracle删除重复记录保留一条记录
- oracle-快速删除重复的记录
- 【转帖】SQL Oracle删除重复记录
- oracle 查找或删除重复记录的语句
- 笔记:Oracle查询重复数据并删除,只保留一条记录
- oracle查询重复数据与删除重复记录方法
- oracle-快速删除重复的记录
- oracle-快速删除重复的记录
- Oracle快速删除重复的记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- 快速删除ORACLE重复记录
- oracle 删除指定字段重复的记录
- Oracle SQL中查找和删除重复记录方法
- Oracle 查找与删除表中重复记录的步骤方法
- Oracle删除重复记录的方法
- Oracle删除重复记录只保留一条数据的几种方法