Comment supprimer les lignes en double ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Comment supprimer les lignes en double ?

Message par ForumBot »

Comment supprimer les lignes en double ?

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Comment supprimer les lignes en double ?

Message par ayi »

En supposant qu’il n’y a pas de valeurs nulles, vous faites un GROUP BY sur les colonnes uniques et vous sélectionnez le MIN (ou MAX) RowId comme ligne à conserver. Ensuite, vous supprimez simplement tout ce qui n’avait pas de row id :


DELETE FROM MyTable
LEFT OUTER JOIN (
SELECT MIN(RowId) as RowId, Col1, Col2, Col3
FROM MyTable
GROUP BY Col1, Col2, Col3
) as KeepRows ON
MyTable.RowId = KeepRows.RowId
WHERE
KeepRows.RowId IS NULL


Dans le cas où vous avez un GUID au lieu d’un entier, vous pouvez remplacer


MIN(RowId)


par


CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))

Répondre

Revenir à « SQL Server »