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: 🤝 APRENDE a ORGANIZAR tu ARCHIVO FOTOGRÁFICO YA!!! 2024, Mayo
Anonim

Al trabajar en Oracle, es posible que algunos de sus registros tengan duplicados. Puede eliminar estas filas duplicadas identificándolas y utilizando su RowID, o dirección de fila. Antes de comenzar, debe crear una tabla de respaldo en caso de que necesite hacer referencia a ellos después de haber eliminado los registros.

Pasos

Método 1 de 4: identificación de su duplicado

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

Paso 1. Identifique el duplicado

En este caso, identifique el duplicado de ejemplo, "Alan". Asegúrese de que los registros que está intentando eliminar sean realmente duplicados ingresando el código SQL a continuación.

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

Paso 2. Identificación de una columna denominada "Nombres

"En el caso de una columna llamada" Nombres ", reemplazaría" nombre_columna "por Nombres.

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

Paso 3. Identificación de otras columnas

Si intenta identificar el duplicado mediante una columna diferente, por ejemplo, la edad de Alan en lugar de su nombre, debe ingresar "Edades" en el lugar de "column_name" 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: eliminar un solo duplicado

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

Paso 1. Seleccione "nombre de los nombres

"Después de" SQL ", que significa Lenguaje de consulta estándar, 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 el nombre duplicado

Después de "SQL", ingrese "eliminar de los nombres donde name = 'Alan';." Tenga en cuenta que las mayúsculas son importantes aquí, por lo que esto eliminará todas las filas 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 colocar la fila sin un duplicado

Ahora que ha eliminado todas las filas con el nombre de ejemplo "Alan", puede volver a insertar una ingresando "insertar en valores de nombre ('Alan');." Después de "SQL", ingrese "confirmar" para crear su nueva fila.

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

Paso 4. Vea su nueva lista

Una vez que haya completado los pasos anteriores, puede verificar para asegurarse de que ya no tiene registros duplicados ingresando "seleccionar * de nombres".

SQL> seleccione el nombre de los nombres; NOMBRE ------------------------------ Alan Carrie Tom Alan filas seleccionadas. SQL> eliminar de nombres donde name = 'Alan'; filas eliminadas. SQL> confirmar; Confirmación completa. SQL> insertar valores en nombres ('Alan'); fila creada. SQL> confirmar; Confirmación completa. SQL> seleccionar * de nombres; NOMBRE ------------------------------ Alan Carrie Tom filas seleccionadas.

Método 3 de 4: eliminar 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 "seleccione ID de fila, nombre de nombres;"

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

Paso 2. Elimina el duplicado

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 registros duplicados.

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

Paso 3. Compruebe si hay duplicados

Una vez que haya completado lo anterior, los comandos verifican si todavía tiene registros duplicados ingresando "select rowid, name from names;" y luego "comprometerse".

SQL> seleccionar rowid, nombre de los nombres; NOMBRE DE 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 DE ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Filas de Tom seleccionadas. SQL> confirmar; Confirmación completa.

Método 4 de 4: eliminar filas con columnas

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

Paso 1. Seleccione sus filas

Después de "SQL", ingrese "seleccione * de los nombres"; para ver tus filas.

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

Paso 2. Elimine filas duplicadas identificando su columna

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 los 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"; y luego "confirmar" para comprobar que ha eliminado los registros duplicados correctamente.

SQL> seleccionar * de nombres; NOMBRE EDAD ------------------------------ ---------- Alan 50 Carrie 51 Tom 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 Carrie 51 Tom 52 filas seleccionadas. SQL> confirmar; Confirmación completa.

Advertencias

  • Cree una tabla de respaldo en su propio inicio de sesión que pueda usar para mostrar lo que estaba allí antes de que ocurriera cualquier eliminación (en caso de que haya alguna pregunta).

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

Recomendado: