sql >> Databasteknik >  >> RDS >> Oracle

Oracle:Varför jag inte kan lita på ROWNUM i en borttagningsklausul

Detta beror på att ROWNUM är en pseudokolumn som antyder att de inte existerar fysiskt. Du kan bättre använda rowid för att radera posterna.

För att ta bort dubbletterna kan du försöka så här:

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. Hur kan jag få skillnaden i timmar mellan två datum?

  2. LEFT JOIN returnerar inte alla poster från den vänstra sidotabellen

  3. Hur skriver man ut 1 till 10 utan att använda Loop i PL/SQL?

  4. Grundläggande administration av Oracle 12c Multitenant