在一些數(shù)據(jù)表中,可能會(huì)有一些重復(fù)(某一字段,或全部字段)的數(shù)據(jù),根據(jù)需求,可能要去掉這些重復(fù)的數(shù)據(jù),下面是常用的方法:
--表 test有重復(fù)的記錄1,10
SQL> select * from tt;
ID
----------
1
2
3
4
10
1
1
1
1
1
10
11 rows selected.
--查詢表中的哪些記錄有重復(fù)
SQL> select * from tt group by id having count(*)>1;
ID
----------
1
10
--查詢出沒有重復(fù)記錄的結(jié)果集
SQL> select * from tt group by id;
ID
----------
1
2
3
4
10
SQL> select distinct * from tt;
ID
----------
1
2
3
4
10
--刪除重復(fù)的記錄
SQL> delete from tt a where a.rowid!=(select max(rowid) from tt b
2 where a.id=b.id);
6 rows deleted.
SQL> commit;
Commit complete.
--刪除后的查詢結(jié)果集
SQL> select * from tt;
ID
----------
2
3
4
1
10
posted on 2009-06-12 10:56
henry1451 閱讀(258)
評(píng)論(0) 編輯 收藏