4 formas de eliminar registros duplicados en Oracle

Tabla de contenido:

4 formas de eliminar registros duplicados en Oracle
4 formas de eliminar registros duplicados en Oracle

Video: 4 formas de eliminar registros duplicados en Oracle

Video: 4 formas de eliminar registros duplicados en Oracle
Video: Microsoft OFFICE GRATIS en tu PC 🤩 #shorts 2024, Noviembre
Anonim

Mientras trabaja en Oracle, puede encontrar duplicados en algunos registros. Puede eliminar filas duplicadas identificándolas y utilizando la dirección de fila de alias de RowID correspondiente. Antes de comenzar, cree una tabla de respaldo en caso de que necesite una referencia después de que se elimine el registro.

Paso

Método 1 de 4: identificación de duplicados

Eliminar registros duplicados en Oracle Paso 1
Eliminar registros duplicados en Oracle Paso 1

Paso 1. Identifique los duplicados

En este ejemplo, identificamos el "Alan" duplicado. Asegúrese de que los registros que se eliminarán sean realmente duplicados ingresando el SQL a continuación.

Eliminar registros duplicados en Oracle Paso 2
Eliminar registros duplicados en Oracle Paso 2

Paso 2. Identifíquese de la columna titulada "Nombre"

En caso de que la columna tenga el título "Nombre", debe reemplazar "nombre_columna" por Nombre.

Eliminar registros duplicados en Oracle Paso 3
Eliminar registros duplicados en Oracle Paso 3

Paso 3. Identifique las otras columnas

Si está intentando identificar duplicados de diferentes columnas, por ejemplo, la edad de Alan en lugar de su nombre, ingrese "Edad" en lugar de "nombre_columna" y así sucesivamente.

seleccione column_name, count (column_name) del grupo de tablas por column_name teniendo count (column_name)> 1;

Método 2 de 4: Eliminación de duplicados únicos

Eliminar registros duplicados en Oracle Paso 4
Eliminar registros duplicados en Oracle Paso 4

Paso 1. Seleccione "nombre de nombres"

Después de "SQL" (abreviatura de Standard Query Language), ingrese "seleccione el nombre de los nombres".

Eliminar registros duplicados en Oracle Paso 5
Eliminar registros duplicados en Oracle Paso 5

Paso 2. Elimine todas las filas con nombres duplicados

Después de "SQL", ingrese "eliminar de nombres donde name = 'Alan';." Cabe señalar que las mayúsculas son importantes aquí para que este paso pueda eliminar todas las líneas llamadas "Alan". Después de "SQL", ingrese "confirmar"

Eliminar registros duplicados en Oracle Paso 6
Eliminar registros duplicados en Oracle Paso 6

Paso 3. Vuelva a ingresar filas sin duplicados

Ahora que eliminó todas las filas y las reemplazó con "Alan", complete una de nuevo ingresando "insertar en los valores de nombre ('Alan');." Después de "SQL", ingrese "confirmar" para crear una nueva línea.

Eliminar registros duplicados en Oracle Paso 7
Eliminar registros duplicados en Oracle Paso 7

Paso 4. Vea la nueva lista

Después de completar los pasos anteriores, puede verificar para asegurarse de que no haya más registros duplicados ingresando "seleccionar * de nombres".

SQL> seleccione el nombre de los nombres; NOMBRE ------------------------------ Alan Citra Tomi Alan Baris seleccionado. SQL> eliminar de nombres donde name = 'Alan'; La línea se elimina. SQL> confirma; / Confirmación completa. SQL> insertar en valores de nombres ('Alan'); fila creada. SQL> confirma; Confirmación completa. SQL> seleccionar * de nombres; NOMBRE ------------------------------ Alan Citra Tomi filas seleccionadas.

Método 3 de 4: eliminación de varios duplicados

Eliminar registros duplicados en Oracle Paso 8
Eliminar registros duplicados en Oracle Paso 8

Paso 1. Seleccione el RowID que desea eliminar

Después de "SQL", ingrese "select rowid, name from names;."

Eliminar registros duplicados en Oracle Paso 9
Eliminar registros duplicados en Oracle Paso 9

Paso 2. Elimine los duplicados

Después de "SQL", ingrese "eliminar de los nombres a donde rowid> (seleccione min (rowid) de los nombres b donde b.name = a.name);" para eliminar duplicados.

Eliminar registros duplicados en Oracle Paso 10
Eliminar registros duplicados en Oracle Paso 10

Paso 3. Compruebe si hay duplicados

Después de completar los pasos anteriores, verifique si hay duplicados ingresando "select rowid, name from names;" luego "comprometerse".

SQL> seleccionar rowid, nombre de los nombres; NOMBRE ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan filas seleccionadas. SQL> eliminar de los nombres a donde rowid> (seleccione min (rowid) de los nombres b donde b.name = a.name); filas eliminadas. SQL> seleccionar rowid, nombre de los nombres; NOMBRE ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom filas seleccionadas. SQL> confirma; Confirmación completa.

Método 4 de 4: eliminar filas por columnas

Eliminar registros duplicados en Oracle Paso 11
Eliminar registros duplicados en Oracle Paso 11

Paso 1. Seleccione la fila

Después de "SQL", ingrese "seleccionar * de los nombres"; para poder ver la línea.

Eliminar registros duplicados en Oracle Paso 12
Eliminar registros duplicados en Oracle Paso 12

Paso 2. Elimine filas duplicadas identificando sus columnas

Después de "SQL '" ingrese "eliminar de los nombres a donde rowid> (seleccione min (rowid) de los nombres b donde b.name = a.name y b.age = a.age);" para eliminar registros duplicados.

Eliminar registros duplicados en Oracle Paso 13
Eliminar registros duplicados en Oracle Paso 13

Paso 3. Compruebe si hay duplicados

Una vez que haya completado los pasos anteriores, ingrese "seleccionar * de los nombres"; luego "confirmar" para ver si los duplicados realmente se han eliminado.

SQL> seleccionar * de nombres; NOMBRE EDAD ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 filas seleccionadas. SQL> eliminar de los nombres a donde rowid> (seleccione min (rowid) de los nombres b donde b.name = a.name y b.age = a.age); fila eliminada. SQL> seleccionar * de nombres; NOMBRE EDAD ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 filas seleccionadas. SQL> confirma; Confirmación completa.

Advertencia

  • Cree una tabla duplicada en su inicio de sesión para que pueda usarse como referencia de contenido cuando no se haya eliminado ningún dato (en caso de que tenga alguna pregunta).

    SQL> crear tabla alan.names_backup como seleccionar * de nombres; Mesa creada.

Recomendado: