Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle:Perché non posso fare affidamento su ROWNUM in una clausola di eliminazione

Questo perché ROWNUM è una pseudo colonna che implica che non esistono fisicamente. Puoi usare meglio rowid per eliminare i record.

Per rimuovere i duplicati puoi provare in questo modo:

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 )