











Ta bort dubbletter av data i oracle
Om du arbetar i Oracle kan en del av dina data visas flera gånger. Du kan ta bort dessa dubbletter genom att identifiera dem och använda deras radadress. Innan du börjar, gör en kopia av tabellen ifall du behöver hänvisa till den efter att ha raderat data.
Steg
Metod 1 av 4: Upptäck dubbletter

1. Identifiera dubbletten. I det här fallet identifierar du provdubbletten, "Alan". Se till att posterna du försöker ta bort faktiskt är dubbletter genom att ange SQL-kommandot nedan.

2. Sök i en kolumn "Namn". I fallet med en kolumn "Namn", fyll i den för "kolumn_namn".

3. Sök i andra kolumner. Om du försöker hitta dubbletter i en annan kolumn, säg Alans ålder istället för hans namn, du kan sätta `Age` före `column_name` osv.
välj kolumnnamn, count(column_name) från tabellgruppen efter kolumnnamn som har count (column_name) > 1;
Metod 2 av 4: Ta bort en enda dubblett

1. Välj "namn från namn". Efter `SQL` (Standard Query Language) skriv `välj namn från namn`.

2. Ta bort alla rader med dubblettnamnet. Efter `SQL` skriver du `radera från namn där name=`Alan`;`. Observera att det är viktigt med versaler här, så detta tar bort alla rader med namnet "Alan". Skriv `commit` efter `SQL`.

3. Gå in i raden igen utan en dubblett. Nu när du har raderat alla rader med exempelnamnet `Alan`, kan du lägga in en igen genom att ange `infoga i namnvärden (`Alan`);.` Efter `SQL` skriv `commit` för att skapa den nya raden.

4. Kolla in din nya lista. När du har slutfört stegen ovan kan du kontrollera om du inte har dubbletter av data med kommandot "select *from names".
SQL > välj namn från namn; NAMN ------------------------------------ Alan Carrie Tom Alan rader markerade. SQL > ta bort från namn där name=`Alan`; rader raderade. SQL > begå; Förpliktelsen är klar. SQL > infoga i namn värden(`Alan`); rad skapad. SQL > begå; Förpliktelsen är klar. SQL > välj *från namn; NAMN ------------------------------------ Alan Carrie Tom rader valda.
Metod 3 av 4: Ta bort flera dubbletter

1. Välj den radadress (rad-ID) du vill ta bort. Efter `SQL` skriv `välj rowid, namn från namn;`.

2. Ta bort dubbletten. Efter `SQL` skriver du `radera från namnen a where rowid > (välj min(rovid) från namn b där b.namn=a.namn);` för att ta bort dubbletter av data.

3. Kontrollera om det finns dubbletter. Efter att ha slutfört ovanstående, kontrollera om du fortfarande har dubbletter av data genom att skriva `välj rowid, namn från namn;` och sedan "begå".
SQL > välj rowid, namn från namn; ROWIDNAME ------------------ ---------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rader valda. SQL > ta bort från namn a where rowid > (välj min(rovid) från namn b där b.namn=a.namn ); rader raderade. SQL > välj rowid, namn från namn; ROWIDNAME ------------------ ---------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom rader valda. SQL > begå; Förpliktelsen är klar.
Metod 4 av 4: Ta bort rader med kolumner

1. Välj raderna. Efter `SQL` skriv `välj *från namn;` för att se de valda raderna.

2. Ta bort dubbletter av rader genom att identifiera deras kolumn. Efter `SQL` skriver du `radera från namnen a where rowid > (välj min(rovid) från namn b där b.namn=a.namn och b.ålder=a.ålder);` för att ta bort dubblettdata.

3. Kontrollera om det finns dubbletter. När du har slutfört stegen ovan, skriv `select *from names;` och sedan `commit` för att kontrollera om du har tagit bort all dubblettdata.
SQL > välj *från namn; NAMNALDER ---------------------------------- ---------- Alan50 Carrie51 Tom52 Alan50 rader valda. SQL > ta bort från namn a where rowid > (välj min(rovid) från namn b där b.namn=a.namn och b.ålder=a.ålder ); rad raderad. SQL > välj *från namn; NAMNALDER ---------------------------------- ---------- Alan50 Carrie51 Tom52 rader valda. SQL > begå; Förpliktelsen är klar.
Varningar
- Gör en säkerhetskopia av tabellen under din egen inloggning som du kan använda för att visa hur situationen var innan raderingen (ifall frågor ställs).
SQL > skapa tabell alan.names_backup som välj *från namn; Tabell skapad.
"Ta bort dubbletter av data i oracle"
Оцените, пожалуйста статью