Je me demande si cette requête est valide:
UPDATE table
SET ID = 111111259
WHERE ID = 2555
AND SET ID = 111111261
WHERE ID = 2724
AND SET ID = 111111263
WHERE ID = 2021
AND SET ID = 111111264
WHERE ID = 2017
NON!
Vous devrez gérer ceux-ci individuellement
Update [table]
Set ID = 111111259
WHERE ID = 2555
Update [table]
Set ID = 111111261
WHERE ID = 2724
--...
La meilleure option est plusieurs mises à jour.
Sinon, vous pouvez faire ce qui suit, mais estPASrecommandé:
UPDATE table
SET ID = CASE WHEN ID = 2555 THEN 111111259
WHEN ID = 2724 THEN 111111261
WHEN ID = 2021 THEN 111111263
WHEN ID = 2017 THEN 111111264
END
WHERE ID IN (2555,2724,2021,2017)
Non, ce n'est pas une requête valide . Vous ne pouvez avoir qu'une seule instruction SET, avec plusieurs champs, mais une seule clause WHERE.
update table1 set field1=value1, field2=value2, field3=value3 where filed4=value5
Nope , voici comment vous le faites:
UPDATE table SET ID = 111111259 WHERE ID = 2555
UPDATE table SET ID = 111111261 WHERE ID = 2724
UPDATE table SET ID = 111111263 WHERE ID = 2021
UPDATE table SET ID = 111111264 WHERE ID = 2017
Non, vous devez créer une requête distincte pour chaque mise à jour.
Vous pouvez également utiliser le cas alors comme ceci:
UPDATE table
SET ID = case
when ID = 2555 then 111111259
when ID = 2724 then 111111261
when ID = 2021 then 111111263
when ID = 2017 then 111111264
else ID
end
Non, vous devrez faire des mises à jour séparées:
UPDATE table
SET ID = 111111259
WHERE ID = 2555
UPDATE table
SET ID = 111111261
WHERE ID = 2724
UPDATE table
SET ID = 111111263
WHERE ID = 2021
UPDATE table
SET ID = 111111264
WHERE ID = 2017
depuis SQL toutes ces lignes que vous voulez le faire, je ferais que vous êtes un code comme celui-ci
Dans votre gestion SQL, exécutez également une requête et cela devrait fonctionner.
UPDATE table
SET ID = 111111259 WHERE ID = 2555
UPDATE table
SET ID = 111111261 WHERE ID = 2724
UPDATE table
SET ID = 111111263 WHERE ID = 2021
UPDATE table
SET ID = 111111264 WHERE ID = 2017
Non, vous devez gérer chaque déclaration séparément.
UPDATE table1
Statement1;
UPDATE table 1
Statement2;
Etc
Tu pourrais faire ça
WITH V(A,B) AS (VALUES
(2555,111111259)
,(2724,111111261)
,(2021,111111263)
,(2017,111111264)
)
SELECT COUNT(*) FROM NEW TABLE (
UPDATE table
SET id = (SELECT B FROM V WHERE ID = A)
WHERE EXISTS (SELECT B FROM V WHERE ID = A)
)
Remarque, ne fonctionne pas sur les tables organisées par colonnes. Utilisez MERGE
dans ce cas