När du arbetar i Oracle kan du hitta dubbletter på vissa poster. Du kan ta bort dubblerade rader genom att identifiera dem och använda motsvarande rad -alias -radadress. Innan du börjar, skapa en reservtabell om du behöver en referens efter att posten har raderats.
Steg
Metod 1 av 4: Identifiera dubbletter
Steg 1. Identifiera dubbletter
I det här exemplet identifierar vi dubbletten "Alan". Se till att de poster som ska raderas verkligen är dubbletter genom att ange SQL nedan.
Steg 2. Identifiera från kolumnen "Namn"
Om kolumnen har titeln "Namn" måste du ersätta "kolumnnamn" med Namn.
Steg 3. Identifiera de andra kolumnerna
Om du försöker identifiera dubbletter från olika kolumner, till exempel Alans ålder istället för hans namn, anger du "Ålder" istället för "kolumnnamn" och så vidare.
välj column_name, count (column_name) från tabellgrupp efter column_name med count (column_name)> 1;
Metod 2 av 4: Ta bort enkla dubbletter
Steg 1. Välj "namn från namn"
Efter "SQL" (förkortning för Standardfrågespråk) anger du "välj namn från namn".
Steg 2. Radera alla rader med dubblettnamn
Efter "SQL" anger du "delete from names where name = 'Alan';." Det bör noteras att stora bokstäver är viktiga här så att detta steg kan radera alla rader som heter "Alan". Efter "SQL" anger du "commit"
Steg 3. Ange rader igen utan dubbletter
Nu när du har raderat alla rader och ersatt dem med "Alan" fyller du i en igen genom att ange "infoga i namnvärden (" Alan ");." Efter "SQL" anger du "commit" för att skapa en ny rad.
Steg 4. Visa den nya listan
När du har slutfört stegen ovan kan du kontrollera att det inte finns fler dubblettposter genom att ange "välj * från namn".
SQL> välj namn från namn; NAMN ------------------------------ Alan Citra Tomi Alan Baris vald. SQL> ta bort från namn där namn = 'Alan'; Raden raderas. SQL> begår; / Commit klar. SQL> infoga i namnvärden ('Alan'); rad skapad. SQL> begår; Begåra klart. SQL> välj * från namn; NAME ------------------------------ Alan Citra Tomi-rader valda.
Metod 3 av 4: Ta bort flera dubbletter
Steg 1. Välj det RowID du vill ta bort
Efter "SQL" anger du "välj rowid, namn från namn;."
Steg 2. Ta bort dubbletter
Efter "SQL" anger du "ta bort från namn a där rowid> (välj min (rowid) från namn b där b.name = a.name);" för att ta bort dubbletter.
Steg 3. Kontrollera om det finns dubbletter
Efter att ha slutfört ovanstående steg, leta efter dubbletter genom att ange "select rowid, name from names;" sedan "begå".
SQL> välj rowid, namn från namn; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rader valda. SQL> ta bort från namn a där rowid> (välj min (rowid) från namn b där b.name = a.name); rader raderade. SQL> välj rowid, namn från namn; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom -rader markerade. SQL> begår; Begåra klart.
Metod 4 av 4: Radera rader efter kolumner
Steg 1. Välj raden
Efter "SQL" anger du "välj * från namn;" för att kunna se linjen.
Steg 2. Ta bort dubblerade rader genom att identifiera deras kolumner
Efter "SQL" anger du "ta bort från namn a där rowid> (välj min (rowid) från namn b där b.name = a.name och b.age = a.age);" för att ta bort dubbletter.
Steg 3. Kontrollera om det finns dubbletter
När du har slutfört stegen ovan anger du "välj * från namn;" sedan "begå" för att se om dubbletterna faktiskt har tagits bort.
SQL> välj * från namn; NAME AGE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 valda rader. SQL> radera från namn a där rowid> (välj min (rowid) från namn b där b.name = a.name och b.age = a.age); rad raderad. SQL> välj * från namn; NAME AGE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 rader valda. SQL> begår; Begåra klart.
Varning
-
Skapa en dubbel tabell i din inloggning så att den kan användas som en innehållsreferens när ingen data har raderats (om du har några frågor).
SQL> skapa tabell alan.names_backup som välj * från namn; Tabellen skapad.