4 sätt att ta bort dubbletter av poster i Oracle

Innehållsförteckning:

4 sätt att ta bort dubbletter av poster i Oracle
4 sätt att ta bort dubbletter av poster i Oracle

Video: 4 sätt att ta bort dubbletter av poster i Oracle

Video: 4 sätt att ta bort dubbletter av poster i Oracle
Video: Top 10 Outlook Free Add-ins 2024, November
Anonim

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

Ta bort dubbletter av poster i Oracle Steg 1
Ta bort dubbletter av poster i Oracle Steg 1

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.

Ta bort dubbla poster i Oracle Steg 2
Ta bort dubbla poster i Oracle Steg 2

Steg 2. Identifiera från kolumnen "Namn"

Om kolumnen har titeln "Namn" måste du ersätta "kolumnnamn" med Namn.

Ta bort dubbletter av poster i Oracle Steg 3
Ta bort dubbletter av poster i Oracle Steg 3

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

Ta bort dubbletter av poster i Oracle Steg 4
Ta bort dubbletter av poster i Oracle Steg 4

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".

Ta bort dubbletter av poster i Oracle Steg 5
Ta bort dubbletter av poster i Oracle Steg 5

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"

Ta bort dubbletter av poster i Oracle Steg 6
Ta bort dubbletter av poster i Oracle Steg 6

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.

Ta bort dubbletter av poster i Oracle Steg 7
Ta bort dubbletter av poster i Oracle Steg 7

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

Ta bort dubbletter av poster i Oracle Steg 8
Ta bort dubbletter av poster i Oracle Steg 8

Steg 1. Välj det RowID du vill ta bort

Efter "SQL" anger du "välj rowid, namn från namn;."

Ta bort dubbletter av poster i Oracle Steg 9
Ta bort dubbletter av poster i Oracle Steg 9

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.

Ta bort dubbletter av poster i Oracle Steg 10
Ta bort dubbletter av poster i Oracle Steg 10

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

Ta bort dubbletter av poster i Oracle Steg 11
Ta bort dubbletter av poster i Oracle Steg 11

Steg 1. Välj raden

Efter "SQL" anger du "välj * från namn;" för att kunna se linjen.

Ta bort dubbletter av poster i Oracle Steg 12
Ta bort dubbletter av poster i Oracle Steg 12

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.

Ta bort dubbletter av poster i Oracle Steg 13
Ta bort dubbletter av poster i Oracle Steg 13

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.

Rekommenderad: