Eliminar datos duplicados en oracle
Contenido
Si trabaja en Oracle, algunos de sus datos pueden aparecer varias veces. Puede eliminar estos duplicados identificándolos y usando su dirección de fila. Antes de comenzar, haga una copia de la tabla en caso de que necesite consultarla después de eliminar los datos.
Pasos
Método 1 de 4: detectar duplicados
1. Identificar el duplicado. En este caso, identifique el duplicado de la muestra, `Alan`. Asegúrese de que los registros que está tratando de eliminar estén realmente duplicados ingresando el comando SQL a continuación.
2. Buscar en una columna `Nombres`. En el caso de una columna `Nombres`, complétela para `column_name`.
3. Buscar en otras columnas. Si intenta encontrar duplicados en otra columna, por ejemplo, la edad de Alan en lugar de su nombre, puede completar `Edad` para `column_name`, etc.
seleccione column_name, count (column_name) del grupo de tablas por column_name que tiene count (column_name) > 1;
Método 2 de 4: Eliminar un solo duplicado
1. Seleccione `nombres de nombres`. Después de `SQL` (lenguaje de consulta estándar), escriba `seleccionar nombre de nombres`.
2. Eliminar todas las filas con el nombre duplicado. Después de `SQL`, escriba `eliminar de nombres donde nombre = `Alan`;`. Tenga en cuenta que las mayúsculas son importantes aquí, por lo que eliminará todas las filas denominadas `Alan`. Escriba `commit` después de `SQL`.
3. Ingrese la fila nuevamente sin un duplicado. Ahora que ha eliminado todas las filas con el nombre de ejemplo `Alan`, puede volver a colocar una ingresando `insertar en valores de nombre (`Alan`);.` Después de `SQL` escriba `commit` para crear la nueva fila.
4. Consulta tu nueva lista. Una vez que haya completado los pasos anteriores, puede verificar si no tiene datos duplicados con el comando `seleccionar * de nombres`.
sql > seleccione el nombre de los nombres; NOMBRE -------------------------------------------- Alan Carrie Tom Alan filas seleccionadas. sql > borrar de nombres donde nombre=`Alan`; filas eliminadas. sql > cometer; Confirmar completo. sql > insertar en valores de nombres (`Alan`); fila creada. sql > cometer; Confirmar completo. sql > seleccionar *de nombres; NOMBRE -------------------------------------------- Alan Carrie Tom filas seleccionadas.
Método 3 de 4: eliminar varios duplicados
1. Seleccione la dirección de fila (ID de fila) que desea eliminar. Después de `SQL`, escriba `seleccione ID de fila, nombre de nombres;`.
2. Eliminar el duplicado. Después de `SQL`, escriba `eliminar de nombres a donde ID de fila > (seleccione min(rowid) de los nombres b donde b.nombre = un.nombre);` para eliminar duplicados de datos.
3. Buscar duplicados. Después de completar lo anterior, verifique si todavía tiene datos duplicados escribiendo `select rowid, name from names;` y luego `comprometerse`.
sql > seleccione ID de fila, nombre de nombres; ROWIDNAME ------------------ ----------------------------- 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.nombre = un.nombre ); filas eliminadas. sql > seleccione ID de fila, nombre de nombres; ROWIDNAME ------------------ ----------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom filas seleccionadas. sql > cometer; Confirmar completo.
Método 4 de 4: eliminar filas de columnas
1. Seleccione las filas. Después de `SQL` escriba `select *from names;` para ver las filas elegidas.
2. Eliminar filas duplicadas identificando su columna. Después de `SQL`, escriba `eliminar de nombres a donde ID de fila > (seleccione min(rowid) de los nombres b donde b.nombre = un.nombre y b.edad = un.envejecer);` para eliminar los datos duplicados.
3. Buscar duplicados. Una vez que haya completado los pasos anteriores, escriba `select *from names;` y luego `confirmar` para verificar si ha eliminado con éxito todos los datos duplicados.
sql > seleccionar *de nombres; NOMBRE --------------------------------- ---------- Alan50 Carrie51 Tom52 Alan50 filas seleccionadas. sql > eliminar de los nombres a donde rowid > (seleccione min(rowid) de los nombres b donde b.nombre = un.nombre y b.edad = un.envejecer ); fila eliminada. sql > seleccionar *de nombres; NOMBRE --------------------------------- ---------- Alan50 Carrie51 Tom52 filas seleccionadas. sql > cometer; Confirmar completo.
Advertencias
- Haga una copia de seguridad de la tabla con su propio inicio de sesión que puede usar para mostrar cómo era la situación antes de la eliminación (en caso de que se hagan preguntas).
sql > crear tabla alan.nombres_copia de seguridad como selección *de nombres; Tabla creada.
Artículos sobre el tema. "Eliminar datos duplicados en oracle"
Оцените, пожалуйста статью
Similar
Popular