Question

Quel est le moyen le plus simple de supprimer des enregistrements avec un nom en double dans une table? Les réponses que j'ai trouvées sont très déroutantes.

Connexes:

  

Supprimer les enregistrements en double de la table

Était-ce utile?

La solution

Je l'ai! Simple et cela a très bien fonctionné.

delete 
   t1 
from 
   tTable t1, tTable t2 
where 
   t1.locationName = t2.locationName and  
   t1.id > t2.id 

http://www.cryer.co.uk/brian/sql /sql_delete_duplicates.htm

Autres conseils

SQL Server 2005:

with FirstKey
AS
(
    SELECT MIN(ID), Name, COUNT(*) AS Cnt
      FROM YourTable
     GROUP BY Name
     HAVING COUNT(*) > 1
)
DELETE YourTable
  FROM YourTable YT
  JOIN FirstKey FK ON FK.Name = YT.Name AND FK.ID != YT.ID
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top