Je ne peux pas find le moyen approprié pour supprimer les keys en double dans la table sql avec le plus petit nombre. S'il y a un doublon avec le même numéro, j'ai besoin d'en supprimer un.
Par exemple
Key Number Description 11111 5 Desc1 11111 4 Desc2 22222 2 Desc1 22222 2 Desc2 33333 3 Desc1 33333 5 Desc2
Ici, j'ai besoin d'être supprimé la deuxième rangée avec le numéro 4 qui est plus petit que le numéro 5, l'un de la troisième ou quasortingème rangée, et la cinquième rangée qui a le plus petit numéro 3, puis la dernière rangée 5.
Requête pour supprimer le doublon dans SQL Server:
;with c as ( select *, row_number() over(partition by [Key] order by Number desc) as n from YouTable ) delete from c where n > 1
DELETE FROM ztable dd WHERE EXISTS ( SELECT * FROM ztable ex WHERE ex.zkey = dd.zkey AND (ex.znumber > dd.znumber OR (ex.znumber = dd.znumber AND ex.description > dd.description) ) );
Note: J'ai renommé la key et le nombre en zkey et en znumber pour éviter toute confusion avec les mots / mots-keys réservés. Similaire pour ztable.