En SQL, algunas filas contienen entradas duplicadas en una columna. Para eliminar tales filas, necesitamos usar la palabra clave DELETE junto con la autounión de la tabla consigo misma. Lo mismo se ilustra a continuación. Para este artículo, utilizaremos Microsoft SQL Server como nuestra base de datos.
Paso 1: crear una base de datos. Para esto, use el siguiente comando para crear una base de datos llamada GeeksForGeeks.
Consulta:
CREATE DATABASE GeeksForGeeks
Producción:
Paso 2: use la base de datos GeeksForGeeks. Para esto, use el siguiente comando.
Consulta:
USE GeeksForGeeks
Producción:
Paso 3: Crea una tabla BONUSES dentro de la base de datos GeeksForGeeks. Esta tabla tiene 3 columnas, a saber, EMPLOYEE_ID, EMPLOYEE_NAME y EMPLOYEE_BONUS que contienen la identificación del empleado, el nombre del empleado y su bonificación.
Consulta:
CREATE TABLE BONUSES( EMPLOYEE_ID INT, EMPLOYEE_NAME VARCHAR(10), EMPLOYEE_BONUS INT);
Producción:
Paso 4: Describa la estructura de la tabla BONOS.
Consulta:
EXEC SP_COLUMNS BONUSES;
Producción:
Paso 5: Inserte 10 filas en la tabla BONOS.
Consulta:
INSERT INTO BONUSES VALUES(1,'RAJ',10000); INSERT INTO BONUSES VALUES(2,'RAJIV',10000); INSERT INTO BONUSES VALUES(3,'RAJ',20000); INSERT INTO BONUSES VALUES(4,'SAMEER',20000); INSERT INTO BONUSES VALUES(5,'PANKAJ',30000); INSERT INTO BONUSES VALUES(6,'HARRY',30000); INSERT INTO BONUSES VALUES(7,'VAUN',40000); INSERT INTO BONUSES VALUES(8,'SANGWOO',40000); INSERT INTO BONUSES VALUES(9,'SAM',50000); INSERT INTO BONUSES VALUES(10,'TIM',50000);
Producción:
Paso 6: Muestre todas las filas de la tabla BONOS.
Consulta:
SELECT * FROM BONUSES;
Producción:
Paso 7: elimine las filas de la tabla BONOS que tienen entradas duplicadas en la columna EMPLOYEE_BONUS . Para lograr esto, usamos la función ELIMINAR uniéndose a sí mismo (use la función JOIN en 2 alias de la tabla, es decir, B1 y B2 ) la tabla consigo misma y comparando las entradas de la columna EMPLOYEE_BONUS para diferentes entradas de la columna EMPLOYEE_ID porque la ID es única para cada empleado.
Sintaxis:
DELETE T1 FROM TABLE_NAME T1 JOIN TABLE_NAME T2 ON T1.COLUMN_NAME1 = T2.COLUMN_NAME1 AND T2.COLUMN_NAME2 < T1.COLUMN_NAME2;
Consulta:
DELETE B1 FROM BONUSES B1 JOIN BONUSES B2 ON B1.EMPLOYEE_BONUS = B2.EMPLOYEE_BONUS AND B2.EMPLOYEE_ID < B1.EMPLOYEE_ID;
Producción:
Paso 8: Muestre todas las filas de la tabla BONUS actualizada.
Consulta:
SELECT * FROM BONUSES;
Nota : ninguna fila tiene entradas duplicadas en la columna EMPLOYEE_BONUS .
Producción:
Paso 9: elimine las filas de la tabla BONOS que tienen entradas duplicadas en la columna EMPLOYEE_NAME .
Consulta:
DELETE B1 FROM BONUSES B1 JOIN BONUSES B2 ON B1.EMPLOYEE_NAME = B2.EMPLOYEE_NAME AND B2.EMPLOYEE_ID < B1.EMPLOYEE_ID;
Producción:
Paso 10: Muestre todas las filas de la tabla BONUS actualizada.
Consulta:
SELECT * FROM BONUSES;
Nota: ninguna fila tiene entradas duplicadas en la columna EMPLOYEE_NAME .
Producción:
Publicación traducida automáticamente
Artículo escrito por abhisri459 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA