6
votes

Utilisation de la mise à jour SQL distincte

Voici le choix que je dois convertir en une mise à jour: xxx

ma tentative: xxx

Je ne sais pas comment appliquer distinct


3 commentaires

Qu'entendez-vous par Mettre à jour distinct ? Pouvez-vous nous montrer les données avant et après la mise à jour?


Bon travail en utilisant un Sélectionnez pour afficher les données avant de la mettre à jour. Je ne sais pas pourquoi vous voudriez utiliser une projection distincte distincte, cependant. Toutes les lignes correspondantes ne devraient-elles pas être mises à jour? Je ne vois pas comment distinct aurait un sens logiquement.


Oui, SQL Server. Oui, toutes les lignes correspondantes devraient être mises à jour. Il s'agit simplement d'un peu de 1 à 0. Peut-être que je n'ai pas besoin de distinct.


4 Réponses :


0
votes

Vous pouvez essayer ce qui suit xxx


0 commentaires

2
votes

Option 1: Utilisez une table temporaire pour contenir vos résultats de la requête initiale, puis mettez à jour en fonction des résultats de la requête.

Option 2: P>

Insert into SETTING_VALUE
(SectionID, Name, Enabled)
SELECT DISTINCT f.SectionID, f.Name, v.Enabled
FROM SETTING_VALUE v
INNER JOIN SETTING s ON v.SettingID = s.SettingID
INNER JOIN LU_FIELD f ON f.FieldID = s.FieldID
WHERE v.DisplayValue LIKE '%Miami%'
AND f.ControlName LIKE '%City%'


0 commentaires

9
votes

Basé sur votre commentaire, Toutes les lignes correspondantes doivent être mises à jour Vous n'avez pas besoin de distinctes. Il suffit d'exécuter ceci: xxx

tout ce que vous avez vu dans votre sélection sera mis à jour.


0 commentaires

1
votes
UPDATE SETTING_VALUE
   SET Enabled = 0
 WHERE DisplayValue LIKE '%Miami%'
       AND EXISTS (
                   SELECT *
                     FROM SETTING s 
                    WHERE SETTING_VALUE.SettingID = s.SettingID
                          AND EXISTS (
                                      SELECT *
                                        FROM LU_FIELD f 
                                       WHERE f.FieldID = s.FieldID
                                             AND f.ControlName LIKE '%City%'
                                     )
                  );

0 commentaires