Je dois mettre à jour une ligne uniquement si son paramètre status est égal à 'CREATED' à 'NEWSTATUS' . J'essaye de le faire avec le code suivant, mais c'est toujours faux.
UPDATE table t
SET t.otherId, t.status =
CASE
WHEN (SELECT t.status FROM table t WHERE t.idRow) = 'CREATED' THEN '10', 'NEWSTATUS'
END
WHERE t.idRow = 23
Que dois-je faire?
3 Réponses :
On dirait que vous voulez juste une simple UPDATE avec une clause WHERE .
UPDATE table
SET status = 'NEWSTATUS'
WHERE status = 'CREATED';
Cherchez-vous simplement ...:
UPDATE table SET otherId = 10, status = 'NEWSTATUS' WHERE idRow = 23 AND status = 'CREATED'
Je pense que vous voulez une expression CASE pour l'affectation de status:
UPDATE table t
SET t.otherId,
t.status = (CASE WHEN t.status = 'CREATED'
THEN '10' ELSE 'NEWSTATUS'
END)
WHERE t.idRow = 23;