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>
本文介绍如何在Oracle数据库中使用SQL语句创建表、插入数据,并通过示例展示如何查询、删除重复记录。具体操作包括创建包含重复数据的表、查询重复记录及最后删除这些重复项。
278

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



