Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Aktualisieren Sie eine Spalte derselben Tabelle, wenn doppelte Datensätze vorhanden sind

Sie können die analytische Funktion row_number() verwenden und rowid um die Zeilen zu bekommen:

UPDATE test_dup
   SET done = 'error'
 WHERE ROWID IN (SELECT ROWID
                   FROM (SELECT acc_num, tel_num, imsi, ROW_NUMBER () OVER (PARTITION BY acc_num, tel_num, imsi ORDER BY acc_num) AS ROW_NUMBER FROM test_dup)
                  WHERE ROW_NUMBER > 1)