Cómo eliminar los registros duplicados en oracle

Al trabajar en Oracle, puede encontrar que algunos de sus registros tienen duplicados. Puede eliminar estas filas duplicadas identificándolas y usando su RowID, o dirección de la fila. Antes de comenzar, debe crear una tabla de copia de seguridad en caso de que necesite hacer referencia después de haber eliminado los registros.

Pasos

Método 1 de 4:
Identificando tu duplicado
  1. Imagen titulada Eliminar registros duplicados en Oracle Paso 1
1. Identificar el duplicado. En este caso, identifique el ejemplo duplicado, "Alan." Asegúrese de que los registros que está intentando eliminar son realmente duplicados ingresando el SQL a continuación.
  • Imagen titulada Eliminar registros duplicados en Oracle Step 2
    2. Identificación de una columna nombrada "Nombres." En la instancia de una columna nombrada "Nombres," reemplazarías "column_name" con nombres.
  • Imagen titulada Eliminar registros duplicados en Oracle Paso 3
    3. Identificación de otras columnas. Si intentaba identificar el duplicado por una columna diferente, por ejemplo, la edad de Alan en lugar de su nombre, entraría "Siglos" en lugar de "column_name" y así.
    Seleccione column_name, contar (column_name) de TableGroup por column_namehaving Count (Column_Name) > 1-
  • Método 2 de 4:
    Eliminar un solo duplicado
    1. Imagen titulada Eliminar registros duplicados en Oracle Step 4
    1. Seleccione "Nombre de los nombres." Después "Sql," ¿Qué significa lenguaje de consulta estándar, ingrese "Seleccione Nombre de los nombres."
  • Imagen titulada Eliminar registros duplicados en Oracle Step 5
    2. Eliminar todas las filas con el nombre duplicado. Después "Sql," ingresar "Eliminar de los nombres donde Name = `Alan`-." Tenga en cuenta que la capitalización es importante aquí, por lo que esto eliminará todas las filas nombradas "Alan." Después "Sql," ingresar "cometer."
  • Imagen titulada Eliminar registros duplicados en Oracle Paso 6
    3. Inquilino la fila sin un duplicado. Ahora que ha eliminado todas las filas con el nombre de ejemplo "Alan," Puedes insertar una detrás ingresando "Insertar en valores de nombre (`alan`)-." Después "Sql," ingresar "cometer" Para crear tu nueva fila.
  • Imagen titulada Eliminar registros duplicados en Oracle Step 7
    4. Mira tu nueva lista. Una vez que haya completado los pasos anteriores, puede verificar que ya no tenga registros duplicados ingresando "Seleccione * a partir de nombres."
    Sql > Seleccione Nombre del nombre: nombre ------------------------------ alancarrietomalanrows seleccionados.Sql > Eliminar de los nombres donde Name = `Alan`-Rows eliminó.Sql > Comprometerse Completo.Sql > Insertar en valores de nombres (`alan`) - Fila creada.Sql > Comprometerse Completo.Sql > Seleccione * desde nombres, nombre ------------------------------------------- alancarrietomrows seleccionados.
  • Método 3 de 4:
    Eliminar múltiples duplicados
    1. Imagen titulada Eliminar registros duplicados en Oracle Step 8
    1. Seleccione el RowID que desea eliminar. Después "Sql," ingresar "Seleccione RowID, nombre de los nombres-."
  • Imagen titulada Eliminar registros duplicados en Oracle Paso 9
    2. Eliminar el duplicado. Después "Sql," ingresar "Eliminar de los nombres a donde Rowid > (Seleccione MIN (RowID) de los nombres B donde b.NOMBRE = A.nombre)-" Para eliminar registros duplicados.
  • Imagen titulada Eliminar registros duplicados en Oracle Step 10
    3. Compruebe si hay duplicados. Una vez que haya completado lo anterior, comandos Compruebe si aún tiene registros duplicados ingresando "Seleccione RowID, nombre de los nombres-" y entonces "cometer."
    Sql > Seleccione RowID, nombre de nombres-RowidName ------------------ -------------------------- ------ AABJNSAAGAAADFOAAAA ALANAABJNSAAGAAADFOAB ALANAABJNSAAGAAAADFOAP CARRIEABJNSAAGAAADFOAAD TOMAABJNSAAGAAADFOAF ALANROWS seleccionado.Sql > Eliminar de los nombres gamas de Rowid > (Seleccione Min (RowID) de los nombres en el lugar B.NOMBRE = A.Nombre) -Rows eliminado.Sql > Seleccione RowID, nombre de nombres-RowidName ------------------ -------------------------- ------ AABJNSAAGAAADFOAAAAAAAAAAPJNSAAGAAADFOAC CARRIAABJNSAAGAAADFOAAD TOMROWS seleccionado.Sql > Comprometerse Completo.
  • Método 4 de 4:
    Eliminar filas con columnas
    1. Imagen titulada Eliminar registros duplicados en Oracle Paso 11
    1. Seleccione sus filas. Después "Sql," ingresar "Seleccione * a partir de nombres-" Para ver tus filas.
  • Imagen titulada Eliminar registros duplicados en Oracle Paso 12
    2. Eliminar filas duplicadas identificando su columna. Después "SQL `" ingresar "Eliminar de los nombres a donde Rowid > (Seleccione MIN (RowID) de los nombres B donde b.NOMBRE = A.Nombre y b.edad = a.edad)-" Para eliminar los registros duplicados.
  • Imagen titulada Eliminar registros duplicados en Oracle Paso 13
    3. Compruebe si hay duplicados. Una vez que haya completado los pasos anteriores, ingrese "Seleccione * a partir de nombres-" y entonces "cometer" Para verificar que ha eliminado los registros duplicados con éxito.
    Sql > Seleccione * de Names-Namagege ------------------------------ ------------------ alan50carrie51tom52alan50rows seleccionado.Sql > Eliminar de los nombres gamas de Rowid > (Seleccione Min (RowID) de los nombres en el lugar B.NOMBRE = A.namand b.edad = a.EDAD) - REDA BORRADO.Sql > Seleccione * desde nombres-Namagege ------------------------------ ------------------------ alan50Carrie51Tom52Rows seleccionados.Sql > Comprometerse Completo.
  • Consejos

    Advertencias

    Cree una tabla de copia de seguridad en su propio inicio de sesión que puede usar para mostrar lo que haya ocurrido antes de que se haya eliminado (en caso de que haya alguna pregunta).
    Sql > crear mesa alan.nombres_backup como selecto * de nombres-tabla creada.
    Artículos Relacionados