Löschen doppelter Datensätze aus einer SQL-Tabelle ohne Primärschlüssel
In einer SQL-Tabelle ohne Primärschlüssel können doppelte Datensätze identifiziert und entfernt werden eine komplexe Aufgabe sein. Das Problem entsteht, wenn mehrere Zeilen in bestimmten Spalten dieselben Werte aufweisen, wodurch Redundanzen in den Daten entstehen. Um dieses Problem zu lösen, untersuchen wir eine Abfrage, die doppelte Zeilen basierend auf einer Kombination von Spalten effektiv eliminiert.
Betrachten Sie die folgende Tabelle mit dem Namen „Mitarbeiter“ mit den angegebenen Daten:
create table employee ( EmpId number, EmpName varchar2(10), EmpSSN varchar2(11) ); insert into employee values(1, 'Jack', '555-55-5555'); insert into employee values (2, 'Joe', '555-56-5555'); insert into employee values (3, 'Fred', '555-57-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555'); insert into employee values (1, 'Jack', '555-55-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6 ,'Lisa', '555-70-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555');
An Wenn wir doppelte Zeilen basierend auf „EmpId“ und „EmpSSN“ entfernen, können wir Folgendes nutzen Abfrage:
DELETE SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
Erklärung:
Das Ausführen dieser Abfrage würde effektiv doppelte Datensätze aus der Tabelle „Mitarbeiter“ entfernen und gleichzeitig die ursprüngliche Reihenfolge der Daten beibehalten. Nach der Ausführung würde die Tabelle nur eindeutige Zeilen basierend auf den Feldern „EmpId“ und „EmpSSN“ enthalten.
Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Zeilen aus einer SQL-Tabelle ohne Primärschlüssel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!