La requête ci-dessous est pour supprimé les doublons dans une table. C’est valide pour Oracle et SqlServer.
Exemple 1 : Supposons qu’on a une table ASSET (ASSETID, ASSETNUM, SITEID ..) et qu’on souhaite supprimer la liste des assets ayant le même n° et le même id. on peut utiliser la requête suivante :
SELECT * FROM ASSET T1
WHERE EXISTS (SELECT *
FROM ASSET T2
WHERE T1.ASSETID = T2.ASSETID
AND T1.ASSETNUM=T2.ASSETNUM
GROUP BY ASSETID , ASSETNUM
HAVING COUNT(*) > 1) ;
Exemple 2 : Autre Requête pour supprimer les doublons :
delete
FROM CLASSIFICATION l1
WHERE rowid > ANY (SELECT min(rowid)
FROM CLASSIFICATION l2
WHERE l1.classificationid = l2.classificationid
);