使用ROWID查找和删除重复行
2004-07-23 09:01
267 查看
SQL> create table lunar ( 2 c1 char(4), 3 c2 varchar2(20) 4 ) 5 / 表已创建。 SQL> insert into lunar values('1111','1111'); 已创建 1 行。 SQL> insert into lunar values('1112','1111'); 已创建 1 行。 SQL> insert into lunar values('1113','1111'); 已创建 1 行。 SQL> insert into lunar values('1114','1111'); 已创建 1 行。 SQL> commit; 提交完成。 SQL> 创建重复记录: SQL> insert into lunar select * from lunar; 已创建4行。 SQL> commit; 提交完成。 SQL> select rowid,c1,c2 from lunar; ROWID C1 C2 ------------------ ---- -------------------- AAAG/OAAGAAAAAMAAA 1111 1111 AAAG/OAAGAAAAAMAAB 1112 1111 AAAG/OAAGAAAAAMAAC 1113 1111 AAAG/OAAGAAAAAMAAD 1114 1111 AAAG/OAAGAAAAAMAAE 1111 1111 AAAG/OAAGAAAAAMAAF 1112 1111 AAAG/OAAGAAAAAMAAG 1113 1111 AAAG/OAAGAAAAAMAAH 1114 1111 已选择8行。 SQL> 查出重复记录 SQL> select rowid,c1,c2 2 from lunar 3 where lunar.rowid!=(select max(rowid) 4 from lunar b 5 where lunar.c1=b.c1 and lunar.c2=b.c2); ROWID C1 C2 ------------------ ---- -------------------- AAAG/OAAGAAAAAMAAA 1111 1111 AAAG/OAAGAAAAAMAAB 1112 1111 AAAG/OAAGAAAAAMAAC 1113 1111 AAAG/OAAGAAAAAMAAD 1114 1111 SQL> 删除重复记录: SQL> delete from lunar a 2 where a.rowid!=(select max(rowid) 3 from lunar b 4 where a.c1=b.c1 and a.c2=b.c2); 已删除4行。 SQL> commit; 提交完成。 SQL> select rowid,c1,c2 from lunar; ROWID C1 C2 ------------------ ---- -------------------- AAAG/OAAGAAAAAMAAE 1111 1111 AAAG/OAAGAAAAAMAAF 1112 1111 AAAG/OAAGAAAAAMAAG 1113 1111 AAAG/OAAGAAAAAMAAH 1114 1111 SQL>
相关文章推荐
- 使用ROWID查找和删除重复行
- ROWID的使用——快速删除重复的记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- 在Oracle中利用Rowid查找和删除表中的重复记录
- Linux系统中使用fdupes来查找并删除重复文件
- 在Oracle中如何利用Rowid查找和删除表中的重复记录(转)
- 【SQL】通过rowid查找及删除重复记录
- Oracle使用rowid删除重复记录
- ROWID的使用——快速删除重复的记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- ROWID的使用——快速删除表中重复的记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- Oracle中用Rowid查找和删除重复记录
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- Oracle中用Rowid查找和删除重复记录
- SQL查找删除重复行
- 利用基于rowid的快速删除重复行的例子
- 如何查找、删除表中重复的记录
- shell脚本实现查找文件夹下重复的文件,并提供删除功能