Hoe het herhalen van vermeldingen in oracle te verwijderen
Herhaallijnen in Oracle kunnen alleen worden gedifferentieerd met behulp van hun `Rowid` (lijnadres).
Stappen
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.

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.

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.}}
[[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: