Kann mir jemand erklären wie ich einen dopplten Datensatz auslesen kann. In der DB "test" habe ich eine Tabelle mit dem Namen "user". Dort ist ein Feld mit dem Namen "email". Nun brauche ich eine Anweisung, welche mir alle doppelte E-Mailadressen ausgibt. Kann mir da jemand helfen?
Announcement
Collapse
No announcement yet.
Doppelter Datensatz
Collapse
X
-
Hallo Manfred,
ich bin zwar nicht Jörg ...
Du gibst einfach alle Spalten, die zusammen das Kriterium bilden in der GROUP BY Klausel an:
Select name, vname, email from user group by name, vname, Email having count(*)>1
Gruß FalWenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.
Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!
Comment
-
Hallo Manfred,
natürlich gibts da Möglichkeiten! Wenn auf der Tabelle ein Primärschlüssel liegt, dann wird die Sache um einiges vereinfacht.
DELETE FROM ATable A
WHERE A.Key IN (
SELECT B.Key FROM ATable B, ATable C
WHERE B.Feld1 = C.Feld1 and B.Feld2 = C.Feld2 ...
AND B.Key < C.Key)
Hierbei werden alle mehrfach vorkommenden Datensätze gelöscht, außer der mit dem größten Primärschlüssel.
Gibt es keinen PK, so kannst du u.U. eine von der DB bereitgestellte Datensatzkennung verwenden (bei ORACLE z.B. die ROWID). Geht auch das nicht, dann hast du fast keine Chance die "doppelten" in einem Rutsch zu löschen - außer du löschst sie ALLE
Gruß Falk
P.S.: Unter Ausschluß jeglicher Gewährleistung für evtl. fehlerhaft gelöschte Datensätze ;Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.
Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!
Comment
Comment