je table appelée statut qui a des données comme celui-ci:Mise à jour Déclaration de requête
ID Status Number
1 S 1
1 p 2
1 S 3
1 C 4
2 S 5
2 R 6
Je voulais me débarrasser des doublons dans ce tableau, donc j'ajouté une autre colonne à cette table appelée drapeau et je mis cela à 1 pour tous les records. Maintenant, ma table ressemble à ceci:
ID Status Number Flag
1 S 1 Y
1 p 2 Y
1 S 3 Y
1 C 4 Y
2 S 5 Y
2 R 6 Y
Je vous écris une requête de mise à jour sur cette mise à jour de la colonne de drapeau à N si elle a des doublons et la requête de mise à jour est:
La colonne numéro est l'identité dans la table.
udate status
set flag = 'N'
where flag = 'Y' and Number in
(select min(Number) from status
where id = 1
having count(*) >1)
Donc, si dois-je cette requête, il me donne des données sans doublons
Select status from status
where flag = Y
Mais la requête de mise à jour ne fonctionne pas si j'ai 3 valeurs similaires pour le statut. La mise à jour ne fonctionne que si j'ai 2 valeurs similaires pour le statut.
Quelqu'un peut-il me suggérer un moyen de le faire?
Avez-vous besoin de vous débarrasser des doublons sur 'id' ou sur (id, status) '? – Quassnoi
Etes-vous en train d'essayer de mettre à jour toutes les lignes qui ont une valeur de drapeau en double à «N» ou juste le premier? – msarchet
cela fonctionne-t-il si vous supprimez le 'flag = 'Y'' de la clause WHERE de votre UPDATE? –