tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Thomas Darimont
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
11052
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    hier mal ein kleines Beispiel wie man ganz schnell doubletten aus einer Oracle Tabelle herausfiltern kann:

    Tabelle: dbltest
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    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(n) 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.)
    Code :
    1
    2
    3
    
    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 :
    1
    2
    3
    4
    5
    6
    7
    
    SQL> select * from dbltest;
     
            ID NAME
    ---------- --------------------------------
             1 AAA
             2 BBB
             3 CCC

    Gruß Tom
    StephanHö bedankt sich. 
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  2. #2
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    Danke vielmals, das hat mir grad echt alles gerettet
     
    Man sagt, das Schwert eines Samurai sei seine Seele ...

    Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.

    Das Schmieden ist eine Kunst; Das Schreiben auch ;)

Ähnliche Themen

  1. [Oracle] Doppelte Einträge in extra Spalte
    Von Dr_Doom im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 24.10.07, 08:14
  2. doppelte Einträge löschen
    Von piti66 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 03.01.06, 15:29
  3. doppelte Einträge löschen
    Von piti66 im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 29.12.05, 11:43
  4. doppelte Einträge löschen
    Von piti66 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 29.12.05, 11:18
  5. doppelte einträge in db löschen
    Von starter/or_not im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 30.12.01, 14:29