Comment trouver les clés en double avec SQL/400.

1ère requête


Select *
From Table1 As T1
Where RRN( T1 ) < ( Select Max( RRN( T2 ) ) From Table1 As T2 Where T1.ColX = T2.ColX )

Cette requête ne renvoie, pour chaque groupe d'enreg. dupliqués, que le premier trouvé dans la table.

Ce sera long sur les "grosses" tables, mais ce sera juste.

2nde requête

Si une autre colonne est unique :


Select *
From Table1 As T1
Where ColY < ( Select Max( ColY ) From Table1 As T2 Where T1.ColX = T2.ColX )

3ème requête

autre méthode :


Select key1, key2..., keyn
From file
Group by key1, key2..., keyn
Having count(*) > 1

4ème requête

Attention, cette requête supprime les doublons ! Dans cet exemple, le dé-doublonage se fait sur la colonne COLX de la table T1.


DELETE FROM T1 A
WHERE RRN(A) NOT IN (
SELECT MAX( RRN(B) ) FROM T1 B WHERE A.COLX = B.COLX
)

Print Friendly, PDF & Email