Hoe het herhalen van vermeldingen in oracle te verwijderen

Herhaallijnen in Oracle kunnen alleen worden gedifferentieerd met behulp van hun `Rowid` (lijnadres).

Stappen

  1. Titel afbeelding Verwijder dubbele records in Oracle Stap 1
een. Verwijder de tekenreeks met RowID. Dit is de eenvoudigste manier om het record te verwijderen.
SQL> Selecteer RowID, naam van namen-nrineIDNAME ---------------------------------------- --------- aabjnsaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac carrieaabjnsaagaakfoaad tom4 rijen geselecteerd.SQL> Verwijderen uit namen waar RowID = `AABJNSAAGAADFOAAAA`-1 rij wordt verwijderd.SQL> Commit-Commit Complete.SQL> Selecteer RowID, naam van namen-nrineidname --------------------------------------------------AAAAC CARIEAABJNSAAGAAADFOAAD Tom3-rijen geselecteerd.
  • Titel afbeelding Verwijder Dubbele records in Oracle Stap 2
    2. Verwijder alle repetitieve regels behalve één.
    SQL> Selecteer Naam van namen-naam ------------------------------- ALANCARRIETOMALAN4 Rijen Geselecteerd.SQL> Verwijderen uit namen waar naam = `Alan`-2-rijen wordt verwijderd.SQL> Commit-Commit Complete.SQL> Invoegen in namenwaarden (`Alan`) - 1 rij gemaakt.SQL> Commit-Commit Complete.SQL> Selecteer * uit namennaam -------------------------------- Aancarrietomrows geselecteerd.
  • Titel afbeelding Verwijder dubbele records in Oracle Stap 3
    3. Gebruik de MAX- of MIN-functie om alle andere lijnen te roeien en te verwijderen. In dit geval, als er verschillende duplicaten zijn, worden ze verwijderd.
    SQL> Selecteer RowID, naam van namen-nrineIDNAME ---------------------------------------- ---------AAAAAAAAAAAAAAAAAAAAAAC CARIEAABJANDAAGAAADFOAAD TOMAABJNSAAGAAADFOAAF ALAN5 Rijen Geselecteerd.SQL> Verwijderen uit namen A2WAAR RONDID> (Select Min (RowID) uit namen B3WAAR B.Naam = A.Name4) -2 Rows verwijderd.SQL> Selecteer RowID, naam van namen-nrineIDNAME ---------------------------------------- --------- AabjnsaagaAadfoaaaaacaac CarrieAabjnsaac CarrieAabjnsaagaAadfoaad Tom3 Rijen Geselecteerd.SQL> Commit-Commit Complete.}}
  • Dupliceer lijn 3 hierboven en voeg een nieuwe kolomnaam toe als u verschillende kolommen in de tabel hebt. Stel dat je een kolom van eeuwen hebt, het team zal de volgende zijn.

    [[Afbeelding: Duplicate Records verwijderen in Oracle Stap 4.JPG | Center | 550px]] {{CodeBox | LANG ="Oracle8"> SQL> Selecteer * uit namen-namage ---------------------------------------- ALAN50CARRIE51TOM52ALAN504 Rijen geselecteerd.SQL> Verwijderen uit namen A2WAAR RONDID> (Select Min (RowID) uit namen B3WAAR B.Naam = A.NAME4AND B.LEEFTIJD = A.Leeftijd 5) -1 rij verwijderd.SQL> Selecteer * van namen-Nameage --------------------------------------- ALAN50CARRIE51TOM52On.SQL> Commit-Commit Complete.
  • Waarschuwingen

    • Maak een back-up van de tabel om de inhoud van de tabel te vergelijken en tonen voordat u iets verwijdert (als u vragen heeft).
    SQL> Creëer tafel Alan.NAMEN_BACKUP AS Selecteer * Van names-tabel gemaakt.
    Deel in het sociale netwerk:
    Vergelijkbaar