Instruction SQL UPDATE avec OÙ EXISTE
Im essayant d'écrire une requête qui met à jour une date que si le groupe de la gi de la mise à jour d'un LINE_CD de 50. Aurais-je le faire comme ça?
UPDATE EMPLOYER_ADDL
SET EMPLOYER_ADDL.GTL_UW_APPRV_DT = EMPLOYER_ADDL.DNTL_UW_APPRV_DT
WHERE EXISTS
(
SELECT EMP_PLAN_LINE_INFO.LINE_CD
FROM EMP_PLAN_LINE_INFO
Where EMP_PLAN_LINE_INFO.GR_NBR = EMPLOYER_ADDL.GR_NBR and
EMP_PLAN_LINE_INFO.LINE_CD = 50
)
Oui............
Vous avez beaucoup de "bonnes réponses" bonne chance à la sélection de l'un d'eux.
Merci à vous tous, j'ai vraiment l'appriciate il
Vous avez beaucoup de "bonnes réponses" bonne chance à la sélection de l'un d'eux.
Merci à vous tous, j'ai vraiment l'appriciate il
OriginalL'auteur user1152145 | 2012-01-26
Vous devez vous connecter pour publier un commentaire.
Quoi à ce sujet?
Le GR_NBR n'est PAS unique dans le EPLI table, mais il est dans ADDL. Par le travail supplémentaire ne u signifier la requête prendra plus de temps?
OriginalL'auteur xbrady
Toutefois, si vous pouvez obtenir cette information à partir d'une requête, pourquoi mettre à jour la table? Semble que ce devra être exécutée en permanence, sous peine d'être hors de date.
Il ne sera pas question pour cette instance. Il est l'aide de
1
parce queEXISTS
les courts-circuits et nous n'avons pas de retour du terrain. Tout ce que nous voulons savoir, c'est, une rangée de satisfaire à la condition de l'inscription?À l'intérieur, il EXISTE un nom de colonne n'a pas d'importance. Vous pouvez dire *, NULL, 'constant' etc. 1 n'est pas un nom de colonne. Si les modifications du schéma et de vous mentionner explicitement le nom de colonne n'est ce pas que moins l'avenir?
L'utilisateur, j'ai donné une raison pourquoi je downvoted votre réponse à l'époque, je downvoted. Il vous manque un "DE" et vous n'avez pas besoin de le pseudonyme ou un nom de table dans le "SET". Merci de ne pas poser des questions à propos de votre réponse dans une autre réponse.
cette syntaxe fonctionne pour Oracle, mais pas pour SQL Server.
OriginalL'auteur Aaron Bertrand
Je crois que cela vous donnera le même résultat.
wow, nous avons même réponse, je me demande qui a voté.
C'est un grand jeu.
+1 parce que vous ne devriez pas avoir été -1ed
Je ne voulais pas faire le bas de vote, mais je pense que celui qui n'a peut-être fait parce que votre mise en forme d'origine est mauvais? On a posté presque la même chose en même temps donc je ne sais pas pourquoi vous l'avez obtenu vers le bas droit de vote.
OriginalL'auteur AJP
En supposant que GR_NBR est un PK et distinctes dans EMP_Plan_line_Info:
OriginalL'auteur SQLMason
Essayer avec cela aussi. Je pense que c'est nouveau pour vous ?
comment se fait-ce? 🙂 Il fonctionne de mon côté, en silence...
personnellement, je préfère être explicite. Quel mal est-il à mettre de l'alias de l'
SET
ligne? Il est utile pour les collègues de la lecture de votre code qui ne sont pas au courant de l'alias n'est pas strictement nécessaire. Si vous utilisez sensible alias il devrait aider à documenter le code mieux, de ne pas rendre plus difficile à lire et à comprendre.Bertrand, Vous êtes que vous êtes à la mise à jour, il n'y a rien à comprendre. La principale raison de la downvote a été l'absence DE ce qui est maintenant été modifiée afin d'inclure.
+1 parce que c'est bon maintenant.
OriginalL'auteur Pankaj
Je crois, il faut un caractère générique:
Je préfère utiliser EN bien. Certains prétendent qu'il peut être plus lent, mais j'ai trouvé que l'optimiseur SQL en 2005 et en plus faire DANS le travail de la même comme il en EXISTE si le champ est un champ non null.
EXISTS
ne nécessite pas un caractère générique. L'optimiseur ignore complètement la liste des colonnes.Point de pris. Toutes les existe des exemples que j'ai jamais vu avoir un caractère générique, mais je ne les ai jamais testés. J'ai remarqué que votre réponse ne soit simplement une sélection de 1.. intéressant.
Générique en SQL est % pas *
La OÙ le générique est %, le SÉLECTIONNEZ le caractère générique ( * ). Se référant à tous les domaines.
OriginalL'auteur Brain2000