Comment supprimer les lignes en double ?

Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

Comment supprimer les lignes en double ?

Message par Clippy »

Comment supprimer les lignes en double ?

ayi
Site Admin
Messages : 9242
Inscription : mer. 22 avr. 2026, 17:21

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 »