在Oracle中找出重复的纪录的方法

王朝oracle·作者佚名  2006-11-24
宽屏版  字体: |||超大  

SQL> desc test

Name Null? Type

----------------------------------------- -------- -----------------

ID NUMBER

--表 test有重复的记录1,10

SQL> select * from test;

ID

----------

1

2

3

4

10

1

1

1

1

1

10

11 rows selected.

--查询表中的哪些记录有重复

SQL> select * from test group by id having count(*)>1;

ID

----------

1

10

--查询出没有重复记录的结果集

SQL> select * from test group by id;

ID

----------

1

2

3

4

10

SQL> select distinct * from test;

ID

----------

1

2

3

4

10

--删除重复的记录

SQL> delete from test a where a.rowid!=(select max(rowid) from test b

2 where a.id=b.id);

6 rows deleted.

SQL> commit;

Commit complete.

--删除后的查询结果集

SQL> select * from test;

ID

----------

2

3

4

1

10

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有