Oracle löscht doppelte Daten und behält den ersten Datensatz bei
1. Suchen Sie nach doppelten Datensätzen in der Tabelle Zu beurteilendes Feld (ID)
select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)
2. Löschen Sie redundante doppelte Datensätze in der Tabelle, wobei nur der Datensatz mit der kleinsten Zeilen-ID übrig bleibt >3. Suchen Sie nach redundanten doppelten Datensätzen (mehrere Felder) in der Tabelle
DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);
4. Löschen Sie redundante doppelte Datensätze (mehrere Felder) in der Tabelle und lassen Sie nur den Datensatz mit der kleinsten Zeilen-ID übrig
select * from 表 a where (a.Id,a.seq) in(select Id,seq from 表 group by Id,seq having count(*) > 1)
5. Suchen Sie nach redundanten doppelten Datensätzen (mehrere Felder) in der Tabelle, mit Ausnahme des Datensatzes mit der kleinsten Zeilen-ID
delete from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)
Auf der chinesischen PHP-Website gibt es eine große Anzahl kostenloser
SQL-Tutorials, die jeder hat Willkommen zum Lernen!
Das obige ist der detaillierte Inhalt vonOracle löscht doppelte Daten und behält den ersten Datensatz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!