Hoe dubbele records in Oracle te verwijderen
Wanneer u met Oracle werkt, kunnen dubbele records vaak worden weergegeven. U kunt deze dubbele rijen elimineren door ze te identificeren en hun eigen RowID (rij-ID) of het rijadres te gebruiken. Voordat u begint, moet u een back-up van de tabel maken voor het geval u deze moet bekijken nadat u de records hebt verwijderd.
Inhoud
stappen
Methode 1
Identificeer dubbele records
1
Identificeer dubbele records In dit geval zal de zaak worden geïdentificeerd "Alan" dat verschijnt twee keer in de tabel. Zorg ervoor dat de records die u probeert te verwijderen, daadwerkelijk worden gedupliceerd met behulp van de volgende SQL-instructie.
2
Identificeer ze via de kolom genaamd "namen". Bijvoorbeeld als u een kolom had genaamd "namen", je moet vervangen "column_name" door "namen".
3
Identificeer ze via andere kolommen. Als je de duplicaten probeert te identificeren via een andere kolom, bijvoorbeeld als je kijkt naar de leeftijd van Alan in plaats van naar zijn naam, voer je "leeftijden" in plaats van "column_name" en zo verder.
SELECT column_name, COUNT (kolomnaam) FROM TABLE GROUP BY kolomnaam HAVING COUNT (kolomnaam) > 1-
Methode 2
Verwijder een enkele dubbele waarde
1
Gebruik de zin SELECTEER de naam VAN de namen. na SQL, wat bedoel je? "Standaard querytaal" (gestandaardiseerde taal van raadplegingen), schrijven SELECTEER de naam VAN de namen.
2
Verwijder alle rijen die de dubbele naam bevatten. na SQL, schrijf de zin VERWIJDEREN van namen WHERE name = `Alan`. Merk op dat u alle kolommen met de naam wilt verwijderen "Alan" het is belangrijk om de eerste letter in hoofdletters te schrijven. na SQL, schrijven COMMIT.
3
Voer de rij opnieuw in, nu zonder het duplicaat. Nu hebt u alle rijen met de voorbeeldnaam verwijderd "Alan", je moet opnieuw een nieuwe invoegen via de zin INVOEGEN Namen VALUES (`Alan`) -. na SQL, schrijven COMMIT om de nieuwe kolom te maken.
4
Kijk naar de nieuwe lijst. Nadat u de bovenstaande stappen heeft voltooid, kunt u de tabel bekijken om ervoor te zorgen dat er geen dubbele records zijn in de zin SELECTEER * VAN namen.
SQL > SELECTEER naam VAN namen-NAAM ------------------------------ AlanCarrieTom Gesplitste plannen.SQL > verwijderen uit namen waarbij naam = `Alan`-rijen zijn verwijderd.SQL > commit-Commit voltooid.SQL > invoegen in naamwaarden (`Alan`) - rij gemaakt.SQL > commit-Commit voltooid.SQL > selecteer * from names-NAME ------------------------------ AlanCarrieTomrows selected.
Methode 3
Verwijder meerdere records
1
Selecteer de RowID die u wilt verwijderen. na SQL, schrijven SELECT ROWID, naam VAN namen-.
2
Verwijder dubbele records. na SQL, schrijven VERWIJDEREN van namen naar WHERE ROWID > (SELECT MIN (ROWID) FROM namen b WHERE b.name = a.name) - om dubbele records te verwijderen.
3
Controleer of er duplicaten zijn. Controleer na het voltooien van de bovenstaande stappen of er nog steeds dubbele records zijn door te typen SELECT ROWID, naam VAN namen- en dan COMMIT.
SQL > SELECT ROWID, name FROM names-ROWID NAME ------------------ ----------------------- ------- AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAB AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD TomAABJnsAAGAAAdfOAAF Alanrows selected.SQL > verwijderen van namen zijn rowid > (selecteer min (rowid) van namen bwhere b.name = a.name) -rows deleted.SQL > selecteer rowid, naam uit namen-ROWID NAME ------------------ ----------------------- ------- AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD Tomrows selected.SQL > commit-Commit voltooid.}}
Methode 4
Verwijder rijen door de kolommen
1
Selecteer de rijen na SQL, schrijven SELECTEER * VAN namen- om de rijen te zien.
2
Verwijder dubbele rijen door ze via hun kolommen te identificeren. na SQL, schrijven VERWIJDEREN van namen naar WHERE ROWID > (SELECT MIN (ROWID) FROM namen b WHERE b.name = a.name AND b.edad = a.edad) - om dubbele records te verwijderen.
3
Controleer of er duplicaten zijn. Controleer na het voltooien van de bovenstaande stappen of er nog steeds dubbele records zijn door te typen SELECT ROWID, naam VAN namen- en dan COMMIT om te controleren of dubbele records met succes zijn verwijderd.
SQL > SELECT * FROM NAMES-NAME AGE ------------------------------ ------ Alan 50Carrie 51Tom 52Alan 50ROWS geselecteerd.SQL > WISSEN VAN NAMEN WAAROM ROWID > (SELECT MIN (ROWID) VAN namen bWHERE b.name = a.nameAND b.age = a.age) -ROW deleted.SQL > SELECT * FROM NAMES-NAME AGE ------------------------------ ------ Alan 50Carrie 51Tom 52ROWS selected.SQL > COMMIT COMMIT voltooid.
waarschuwingen
- Maak een back-up van je board in uw sessie en gebruik deze om te zien wat de gegevens uit de oorspronkelijke tabel waren vóór het verwijderen van duplicaten (als u twijfelt).
SQL > CREATEER TABEL alan.names_backup AS SELECT * FROM names-TABLE created.
Delen op sociale netwerken:
Verwant
- Hoe een koptekst in Excel toe te voegen
- Hoe u Microsoft Excel-kolommen alfabetisch kunt aanpassen
- Hoe kolommen in InDesign aan te passen
- Gegevensvergelijkingen zoeken in Excel
- Hoe een eenvoudige tabel in Microsoft Word te maken
- Hoe Excel te verdelen
- Hoe webadressen in Mozilla Firefox te verwijderen
- Hoe duplicaten te verwijderen in iTunes
- Hoe duplicaten te verwijderen in Excel
- Hoe herhaalde records in Excel 2007 te verwijderen
- Hoe duplicaten gemakkelijk te vinden in Microsoft Access
- Hoe dubbele elementen te vinden in Excel
- Hoe hoofdletters en kleine letters in binaire code te schrijven
- Hoe de geschiedenis van uw gesprekken op te nemen in Windows Live Messenger
- Hoe een Excel-spreadsheet te maken
- Hoe een tabel in een Microsoft Word-document in te voegen
- Hoe Oracle Edition Express 11G te installeren
- Hoe kolommen in Excel te tonen
- Hoe cellen alfabetisch sorteren in Excel
- Hoe acetaatschijven in te pakken om ze per post te verzenden
- Hoe te tellen van 10 tot 20 in het Engels