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

Oracle :pourquoi je ne peux pas compter sur ROWNUM dans une clause de suppression

En effet, ROWNUM est une pseudo-colonne, ce qui implique qu'elles n'existent pas physiquement. Vous pouvez mieux utiliser rowid pour supprimer les enregistrements.

Pour supprimer les doublons, vous pouvez essayer comme ceci :

DELETE FROM mytable a
WHERE EXISTS( SELECT 1 FROM mytable b
              WHERE a.id = b.id
              AND a.name = b.name
              AND a.rowid > b.rowid )