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 duplicado1. 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.
2. Identificación de una columna nombrada "Nombres." En la instancia de una columna nombrada "Nombres," reemplazarías "column_name" con nombres.
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 duplicado1. Seleccione "Nombre de los nombres." Después "Sql," ¿Qué significa lenguaje de consulta estándar, ingrese "Seleccione Nombre de los nombres."
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."
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.
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 duplicados1. Seleccione el RowID que desea eliminar. Después "Sql," ingresar "Seleccione RowID, nombre de los nombres-."
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.
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 columnas1. Seleccione sus filas. Después "Sql," ingresar "Seleccione * a partir de nombres-" Para ver tus filas.
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.
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.