4 modi per eliminare i record duplicati in Oracle

Sommario:

4 modi per eliminare i record duplicati in Oracle
4 modi per eliminare i record duplicati in Oracle

Video: 4 modi per eliminare i record duplicati in Oracle

Video: 4 modi per eliminare i record duplicati in Oracle
Video: Come ORGANIZZO il mio ARCHIVIO FOTOGRAFICO e il BACKUP delle FOTOGRAFIE? 2024, Maggio
Anonim

Quando lavori in Oracle, potresti scoprire che alcuni dei tuoi record hanno duplicati. Puoi eliminare queste righe duplicate identificandole e utilizzando il relativo RowID o indirizzo di riga. Prima di iniziare, è necessario creare una tabella di backup nel caso sia necessario farvi riferimento dopo aver eliminato i record.

Passi

Metodo 1 di 4: Identificazione del tuo duplicato

Elimina i record duplicati in Oracle Passaggio 1
Elimina i record duplicati in Oracle Passaggio 1

Passaggio 1. Identificare il duplicato

In questo caso, identifica il duplicato di esempio, "Alan". Assicurati che i record che stai tentando di eliminare siano effettivamente duplicati inserendo l'SQL di seguito.

Elimina i record duplicati in Oracle Passaggio 2
Elimina i record duplicati in Oracle Passaggio 2

Passaggio 2. Identificazione da una colonna denominata "Nomi

"Nell'istanza di una colonna denominata "Nomi, " sostituiresti "nome_colonna" con Nomi.

Elimina i record duplicati in Oracle Passaggio 3
Elimina i record duplicati in Oracle Passaggio 3

Passaggio 3. Identificazione da altre colonne

Se stavi cercando di identificare il duplicato con una colonna diversa, ad esempio l'età di Alan anziché il suo nome, dovresti inserire "Età" al posto di "nome_colonna" e così via.

seleziona nome_colonna, conteggio (nome_colonna) dal gruppo di tabelle per nome_colonna con conteggio (nome_colonna) > 1;

Metodo 2 di 4: Eliminazione di un singolo duplicato

Elimina i record duplicati in Oracle Passaggio 4
Elimina i record duplicati in Oracle Passaggio 4

Passaggio 1. Seleziona "nome dai nomi

"Dopo "SQL", che sta per Standard Query Language, inserisci "seleziona nome dai nomi".

Elimina i record duplicati in Oracle Passaggio 5
Elimina i record duplicati in Oracle Passaggio 5

Passo 2. Elimina tutte le righe con il nome duplicato

Dopo "SQL", inserisci "cancella dai nomi dove nome='Alan';." Nota che le maiuscole sono importanti qui, quindi verranno eliminate tutte le righe denominate "Alan". Dopo "SQL", inserisci "commit".

Elimina i record duplicati in Oracle Passaggio 6
Elimina i record duplicati in Oracle Passaggio 6

Passaggio 3. Affittare la riga senza duplicati

Ora che hai cancellato tutte le righe con il nome di esempio "Alan", puoi inserirne una di nuovo inserendo "inserisci nei valori del nome ('Alan');." Dopo "SQL", inserisci "commit" per creare la tua nuova riga.

Elimina i record duplicati in Oracle Passaggio 7
Elimina i record duplicati in Oracle Passaggio 7

Passaggio 4. Visualizza il tuo nuovo elenco

Una volta completati i passaggi precedenti, puoi verificare di non avere più record duplicati inserendo "seleziona * dai nomi".

SQL > seleziona il nome dai nomi; NOME ---------------- Alan Carrie Tom Alan righe selezionate. SQL > elimina dai nomi dove name='Alan'; righe eliminate. SQL > commit; Impegno completato. SQL > inserisci nei nomi i valori ('Alan'); riga creata. SQL > commit; Impegno completato. SQL > seleziona * dai nomi; NOME ---------------- Alan Carrie Tom righe selezionate.

Metodo 3 di 4: Eliminazione di più duplicati

Elimina i record duplicati in Oracle Passaggio 8
Elimina i record duplicati in Oracle Passaggio 8

Passaggio 1. Selezionare l'ID riga che si desidera eliminare

Dopo "SQL", inserisci "select rowid, name from names;."

Elimina i record duplicati in Oracle Passaggio 9
Elimina i record duplicati in Oracle Passaggio 9

Passaggio 2. Elimina il duplicato

Dopo "SQL," inserisci "cancella dai nomi a dove idriga > (seleziona min(idriga) dai nomi b dove b.nome=a.nome);" per eliminare i record duplicati.

Elimina i record duplicati in Oracle Passaggio 10
Elimina i record duplicati in Oracle Passaggio 10

Passaggio 3. Verifica la presenza di duplicati

Dopo aver completato quanto sopra, i comandi controllano se hai ancora record duplicati inserendo "select rowid, name from names;" e poi "impegnati".

SQL > seleziona rowid, nome dai nomi; NOME RIGA --------------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan righe selezionate. SQL > elimina dai nomi a dove rowid > (seleziona min(rowid) dai nomi b dove b.name=a.name); righe eliminate. SQL > seleziona rowid, nome dai nomi; NOME RIGA --------------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom righe selezionate. SQL > commit; Impegno completato.

Metodo 4 di 4: Eliminazione di righe con colonne

Elimina i record duplicati in Oracle Passaggio 11
Elimina i record duplicati in Oracle Passaggio 11

Passaggio 1. Seleziona le tue righe

Dopo "SQL", inserisci "seleziona * dai nomi;" per vedere le tue righe.

Elimina i record duplicati in Oracle Passaggio 12
Elimina i record duplicati in Oracle Passaggio 12

Passo 2. Elimina le righe duplicate identificando la loro colonna

Dopo "SQL'" inserisci "cancella dai nomi a dove rowid > (seleziona min(rowid) dai nomi b dove b.name=a.name e b.age=a.age);" per eliminare i record duplicati.

Elimina i record duplicati in Oracle Passaggio 13
Elimina i record duplicati in Oracle Passaggio 13

Passaggio 3. Verifica la presenza di duplicati

Una volta completati i passaggi precedenti, inserisci "seleziona * dai nomi;" e quindi "conferma" per verificare di aver eliminato correttamente i record duplicati.

SQL > seleziona * dai nomi; NOME ETÀ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 righe selezionate. SQL > elimina dai nomi a dove rowid > (seleziona min(rowid) dai nomi b dove b.name=a.name e b.age=a.age); riga eliminata. SQL > seleziona * dai nomi; NOME ETÀ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 righe selezionate. SQL > commit; Impegno completato.

Avvertenze

  • Crea una tabella di backup nel tuo accesso che puoi utilizzare per mostrare cosa c'era prima che si verificasse l'eliminazione (in caso di domande).

    SQL > crea tabella alan.names_backup come select * from names; Tabella creata.

Consigliato: