4 maneres de suprimir registres duplicats a Oracle

Taula de continguts:

4 maneres de suprimir registres duplicats a Oracle
4 maneres de suprimir registres duplicats a Oracle

Vídeo: 4 maneres de suprimir registres duplicats a Oracle

Vídeo: 4 maneres de suprimir registres duplicats a Oracle
Vídeo: Deborah Rhodes: A tool that finds 3x more breast tumors, and why it's not available to you 2024, Maig
Anonim

Quan treballeu a Oracle, és possible que alguns dels vostres registres tinguin duplicats. Podeu eliminar aquestes files duplicades identificant-les i utilitzant el seu RowID o adreça de fila. Abans de començar, heu de crear una taula de còpia de seguretat per si cal fer-ne referència després d’haver suprimit els registres.

Passos

Mètode 1 de 4: identificació del duplicat

Suprimiu registres duplicats a l'Oracle Pas 1
Suprimiu registres duplicats a l'Oracle Pas 1

Pas 1. Identifiqueu el duplicat

En aquest cas, identifiqueu l'exemple duplicat, "Alan". Assegureu-vos que els registres que esteu intentant suprimir són realment duplicats introduint l'SQL a continuació.

Suprimiu registres duplicats al pas 2 d'Oracle
Suprimiu registres duplicats al pas 2 d'Oracle

Pas 2. Identificació a partir d'una columna anomenada "Noms

"En el cas d'una columna anomenada" Noms ", substituireu" columna_nom "per Noms.

Suprimiu registres duplicats a l'Oracle Pas 3
Suprimiu registres duplicats a l'Oracle Pas 3

Pas 3. Identificació a partir d'altres columnes

Si intentéssiu identificar el duplicat amb una columna diferent, per exemple l'edat d'Alan en lloc del seu nom, introduïu "Edats" al lloc de "nom_columna", etc.

seleccioneu column_name, count (column_name) del grup de taules per column_name amb count (column_name)> 1;

Mètode 2 de 4: suprimir un sol duplicat

Suprimiu registres duplicats a l'Oracle Pas 4
Suprimiu registres duplicats a l'Oracle Pas 4

Pas 1. Seleccioneu "nom entre noms"

"Després de" SQL ", que significa" Idioma de consulta estàndard ", introduïu" seleccioneu el nom entre els noms ".

Suprimiu registres duplicats a l'Oracle Pas 5
Suprimiu registres duplicats a l'Oracle Pas 5

Pas 2. Suprimiu totes les files amb el nom duplicat

Després de "SQL", introduïu "elimina dels noms on name = 'Alan';." Tingueu en compte que aquí hi ha majúscules i majúscules, de manera que se suprimiran totes les files anomenades "Alan". Després de "SQL", introduïu "commit".

Suprimiu registres duplicats a l'Oracle Pas 6
Suprimiu registres duplicats a l'Oracle Pas 6

Pas 3. Llogueu la fila sense duplicat

Ara que heu suprimit totes les files amb el nom d'exemple "Alan", podeu inserir-ne una de nou si introduïu "inseriu en valors de nom (" Alan ");" Després de "SQL", introduïu "commit" per crear la vostra nova fila.

Suprimiu registres duplicats a l'Oracle Pas 7
Suprimiu registres duplicats a l'Oracle Pas 7

Pas 4. Vegeu la llista nova

Un cop hàgiu completat els passos anteriors, podeu comprovar que ja no teniu registres duplicats introduint "seleccioneu * entre els noms".

SQL> seleccioneu el nom dels noms; NOM ------------------------------ Alan Carrie Tom Alan files seleccionades. SQL> esborra de noms on name = 'Alan'; files eliminades. SQL> commit; S'ha completat el compromís. SQL> insereix valors de noms ('Alan'); fila creada. SQL> commit; S'ha completat el compromís. SQL> seleccioneu * dels noms; NOM ------------------------------ S'han seleccionat files d'Alan Carrie Tom.

Mètode 3 de 4: supressió de diversos duplicats

Suprimiu registres duplicats a l'Oracle Pas 8
Suprimiu registres duplicats a l'Oracle Pas 8

Pas 1. Seleccioneu el RowID que voleu suprimir

Després de "SQL", introduïu "seleccioneu rowid, nom entre noms;"

Suprimiu registres duplicats a l'Oracle Pas 9
Suprimiu registres duplicats a l'Oracle Pas 9

Pas 2. Suprimiu el duplicat

Després de "SQL", introduïu "elimina dels noms a on rowid> (seleccioneu min (rowid) dels noms b on b.name = a.name);" per suprimir registres duplicats.

Suprimiu registres duplicats a l'Oracle Pas 10
Suprimiu registres duplicats a l'Oracle Pas 10

Pas 3. Comproveu si hi ha duplicats

Un cop hàgiu completat l'anterior, les comandes comprovaran si encara teniu registres duplicats introduint "select rowid, name from names;" i després "cometre".

SQL> seleccioneu rowid, nom entre noms; NOM ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan files selected. SQL> esborra dels noms a where rowid> (seleccioneu min (rowid) dels noms b on b.name = a.name); files eliminades. SQL> seleccioneu rowid, nom entre noms; NOM ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom files seleccionades. SQL> commit; S'ha completat el compromís.

Mètode 4 de 4: supressió de files amb columnes

Suprimiu registres duplicats a l'Oracle Pas 11
Suprimiu registres duplicats a l'Oracle Pas 11

Pas 1. Seleccioneu les files

Després de "SQL", introduïu "seleccioneu * dels noms;" per veure les vostres files.

Suprimiu registres duplicats a l'Oracle Pas 12
Suprimiu registres duplicats a l'Oracle Pas 12

Pas 2. Suprimiu les files duplicades identificant-ne la columna

Després de "SQL", introduïu "elimineu dels noms a on rowid> (seleccioneu min (rowid) dels noms b on b.name = a.name i b.age = a.age);" per suprimir els registres duplicats.

Suprimiu registres duplicats a l'Oracle Pas 13
Suprimiu registres duplicats a l'Oracle Pas 13

Pas 3. Comproveu si hi ha duplicats

Un cop hàgiu completat els passos anteriors, introduïu "seleccioneu * entre noms;" i després "confia" per comprovar que heu suprimit correctament els registres duplicats.

SQL> seleccioneu * dels noms; NOM EDAT ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 files seleccionades. SQL> esborra dels noms a where rowid> (seleccioneu min (rowid) dels noms b on b.name = a.name i b.age = a.age); fila suprimida. SQL> seleccioneu * dels noms; NOM EDAT ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 files seleccionades. SQL> commit; S'ha completat el compromís.

Advertiments

  • Creeu una taula de còpia de seguretat al vostre propi inici de sessió que pugueu utilitzar per mostrar què hi havia abans que es produís la supressió (en cas que hi hagi alguna pregunta).

    SQL> crea la taula alan.names_backup com a selecció * dels noms; Taula creada.

Recomanat: