Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:Por que não posso confiar em ROWNUM em uma cláusula de exclusão


Isso ocorre porque ROWNUM é uma pseudo coluna que implica que eles não existem fisicamente. Você pode usar melhor rowid para excluir os registros.

Para remover as duplicatas, você pode tentar assim:
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 )