Thomas Darimont
Erfahrenes Mitglied
Hallo!
hier mal ein kleines Beispiel wie man ganz schnell doubletten aus einer Oracle Tabelle herausfiltern kann:
Tabelle: dbltest
Nun das "magische" Statement:
(Wobei hier darauf zu achten ist, dass wir in der Group By Klausel die Spalte
angeben die wir bei der Überprüfung auf Übereinstimmung zu Rate ziehen. In dem Fall definieren wir als "Doubletten" die Zeilen die den gleichen "Name"-Wert haben.)
Danach ergibt ein anschließendes Select:
Gruß Tom
hier mal ein kleines Beispiel wie man ganz schnell doubletten aus einer Oracle Tabelle herausfiltern kann:
Tabelle: dbltest
Code:
SQL> create table dbltest(id int, name varchar(32));
Tabelle wurde angelegt.
insert into dbltest values(1,'AAA');
insert into dbltest values(1,'AAA');
insert into dbltest values(1,'AAA');
insert into dbltest values(1,'AAA');
insert into dbltest values(2,'BBB');
insert into dbltest values(2,'BBB');
insert into dbltest values(3,'CCC');
SQL> select * from dbltest;
ID NAME
---------- --------------------------------
1 AAA
1 AAA
1 AAA
1 AAA
2 BBB
2 BBB
3 CCC
7 Zeilen ausgewõhlt.
Nun das "magische" Statement:
(Wobei hier darauf zu achten ist, dass wir in der Group By Klausel die Spalte

Code:
SQL> DELETE FROM dbltest WHERE ROWID NOT IN ( SELECT MIN(ROWID) FROM dbltest GROUP BY (name));
4 Zeilen wurden gel÷scht.
Danach ergibt ein anschließendes Select:
Code:
SQL> select * from dbltest;
ID NAME
---------- --------------------------------
1 AAA
2 BBB
3 CCC
Gruß Tom