sql >> Databáze >  >> RDS >> Oracle

Oracle:Proč se nemohu spolehnout na ROWNUM v klauzuli delete

Je to proto, že ROWNUM je pseudosloupec, což znamená, že fyzicky neexistují. Můžete lépe použít rowid pro smazání záznamů.

Chcete-li odstranit duplikáty, můžete to zkusit takto:

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 )


  1. Volání nedefinované funkce sqlsrv_connect() - Odstraňování problémů

  2. Jak zastavit proces vracení Oracle?

  3. SPOUŠTĚČE, které způsobují selhání INSERTů? Možný?

  4. Mysql spojit dvě tabulky součet, kde a seskupit podle