Oracle
 sql >> Base de données >  >> RDS >> Oracle

Mettre à jour une colonne de la même table s'il y a des enregistrements en double

Vous pouvez utiliser la fonction analytique row_number() et rowid pour obtenir les lignes :

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)