Vamos a mostrar un camino corto pero efectivo para seleccionar y borrar registros duplicados en una tabla de MSSQL o MySQL.
En algún momento se requiere encontrar registros duplicados en nuestra tabla. He aquí una solución simple de consulta SQL. Miremos un poco más.

Bueno, yo voy a crear una tabla sencilla en la base de datos AdventureWorks.

use adventureworks
GO
Create Table SeleccionDuplicada
(
ID int identity(1,1) not null,
Fname varchar(10) not null,
Lname varchar(10) not null,
City varchar(10) not null
)

Ahora se va ingresar algunos registros en la tabla creada anteriormente.

INSERT INTO SeleccionDuplicada VALUES(‘Charles’,’Virginia’,’Zafir’)
INSERT INTO SeleccionDuplicada VALUES(‘Avril’,’Sergey’,’Edison’)
INSERT INTO SeleccionDuplicada VALUES(‘Robert’,’Kalaria’,’MSSQL’)
INSERT INTO SeleccionDuplicada VALUES(‘Charles’,’Chaplin’,’Windows’)
INSERT INTO SeleccionDuplicada VALUES(‘Robert’,’Kalar’,’Zafir’)

Ahora ejecutamos la siguiente sentencia SQL.

SELECT * FROM SeleccionDuplicada
WHERE ID NOT IN
(
SELECT MAX(ID) FROM SeleccionDuplicada
GROUP BY Fname,Lname
)

Es de señalar que hay muchos caminos para borrar los registros duplicados de la base de datos, y obviamente podemos borrar estos registros solamente con cambiar el primer “SELECT*” a “DELETE” como en el siguiente código.

DELETE FROM SeleccionDuplicada
WHERE ID NOT IN
(
SELECT MAX(ID) FROM SeleccionDuplicada
GROUP BY Fname,Lname
)
(Visitado 18.579 veces, 1 visitas hoy)