Rimuovere i dati duplicati in oracle

Se lavori in Oracle, alcuni dei tuoi dati potrebbero essere visualizzati più volte. Puoi rimuovere questi duplicati identificandoli e utilizzando il loro indirizzo di riga. Prima di iniziare, fai una copia della tabella nel caso in cui sia necessario fare riferimento ad essa dopo aver eliminato i dati.

Passi

Metodo 1 di 4: Rileva duplicati

Immagine intitolata Delete Duplicate Records in Oracle Step 1
1. Identifica il duplicato. In questo caso, identificare il duplicato del campione, `Alan`. Assicurati che i record che stai tentando di eliminare siano effettivamente duplicati immettendo il comando SQL di seguito.
Immagine intitolata Delete Duplicate Records in Oracle Step 2
2. Cerca in una colonna `Nomi`. Nel caso di una colonna `Nomi`, compilala per `nome_colonna`.
Immagine intitolata Delete Duplicate Records in Oracle Step 3
3. Cerca in altre colonne. Se provi a trovare duplicati in un`altra colonna, dì l`età di Alan invece del suo nome, puoi mettere "Età" prima di "nome_colonna", ecc.
seleziona nome_colonna, conteggio (nome_colonna) dal gruppo di tabelle per nome_colonna con conteggio (nome_colonna) > 1;

Metodo 2 di 4: Elimina un singolo duplicato

Immagine intitolata Delete Duplicate Records in Oracle Step 4
1. Seleziona "nomi dai nomi". Dopo `SQL` (Standard Query Language) digita `seleziona il nome dai nomi`.
Immagine intitolata Delete Duplicate Records in Oracle Step 5
2. Elimina tutte le righe con il nome duplicato. Dopo `SQL` digita `cancella da nomi dove nome=`Alan`;`. Nota che la maiuscola è importante qui, quindi questo rimuoverà tutte le righe denominate "Alan". Digita "commit" dopo "SQL".
Immagine intitolata Delete Duplicate Records in Oracle Step 6
3. Immettere di nuovo la riga senza un duplicato. Ora che hai eliminato tutte le righe con il nome di esempio `Alan`, puoi reinserirne una inserendo `insert in name values ​​​​(`Alan`);.` Dopo `SQL` digita `commit` per creare la nuova riga.
Immagine intitolata Delete Duplicate Records in Oracle Step 7
4. Dai un`occhiata alla tua nuova lista. Una volta completati i passaggi precedenti, puoi verificare se non hai dati duplicati con il comando `seleziona *da nomi`.
SQL > seleziona il nome dai nomi; NOME ------------------------------------------- Alan Carrie Tom Alan righe selezionate. SQL > cancella dai nomi dove nome=`Alan`; righe cancellate. SQL > commettere; Impegno completo. SQL > inserisci nei nomi valori(`Alan`); riga creata. SQL > commettere; Impegno completo. SQL > seleziona *dai nomi; NAME ----------------------------- Alan Carrie Tom righe selezionate.

Metodo 3 di 4: rimuovi più duplicati

Immagine intitolata Delete Duplicate Records in Oracle Step 8
1. Seleziona l`indirizzo della riga (ID riga) che desideri eliminare. Dopo `SQL` digita `select rowid, name from names;`.
Immagine intitolata Delete Duplicate Records in Oracle Step 9
2. Elimina il duplicato. Dopo `SQL` digita `cancella dai nomi a where rowid > (seleziona min(rowid) dai nomi b dove b.nome=a.nome);` per rimuovere duplicati di dati.
Immagine intitolata Delete Duplicate Records in Oracle Step 10
3. Verifica la presenza di duplicati. Dopo aver completato quanto sopra, controlla se hai ancora dati duplicati digitando "select rowid, name from names;" e poi "impegnati".
SQL > seleziona rowid, nome dai nomi; ROWIDNAME ------------------ ----------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan righe selezionate. SQL > elimina dai nomi a where rowid > (seleziona min(rowid) dai nomi b dove b.nome=a.nome ); righe cancellate. SQL > seleziona rowid, nome dai nomi; ROWIDNAME ------------------ ----------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom righe selezionate. SQL > commettere; Impegno completo.

Metodo 4 di 4: Elimina righe di colonne

Immagine intitolata Delete Duplicate Records in Oracle Step 11
1. Seleziona le righe. Dopo `SQL` digita `select *from names;` per vedere le righe scelte.
Immagine intitolata Delete Duplicate Records in Oracle Step 12
2. Rimuovi le righe duplicate identificando la loro colonna. Dopo `SQL` digita `cancella dai nomi a where rowid > (seleziona min(rowid) dai nomi b dove b.nome=a.nome e b.età=a.età);` per rimuovere i dati duplicati.
Immagine intitolata Delete Duplicate Records in Oracle Step 13
3. Verifica la presenza di duplicati. Dopo aver completato i passaggi precedenti, digita `select *from names;` e quindi "commit" per verificare se hai rimosso con successo tutti i dati duplicati.
SQL > seleziona *dai nomi; NAMEAGE ---------------------------------- ---------- Alan50 Carrie51 Tom52 Alan50 righe selezionate. SQL > elimina dai nomi a where rowid > (seleziona min(rowid) dai nomi b dove b.nome=a.nome e b.età=a.età ); riga cancellata. SQL > seleziona *dai nomi; NAMEAGE ---------------------------------- ---------- Alan50 Carrie51 Tom52 righe selezionate. SQL > commettere; Impegno completo.

Avvertenze

  • Fai un backup della tabella con il tuo login che puoi usare per mostrare com`era la situazione prima dell`eliminazione (nel caso in cui vengano poste domande).
SQL > crea tabella alan.backup_nomi come seleziona *da nomi; Tavola creata.

Condividi sui social network: