0
votes

Comment mettre à jour uniquement si une valeur de texte est égale à un texte spécifique?

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?


0 commentaires

3 Réponses :


1
votes

On dirait que vous voulez juste une simple UPDATE avec une clause WHERE .

UPDATE table
       SET status = 'NEWSTATUS'
       WHERE status = 'CREATED';


0 commentaires

1
votes

Cherchez-vous simplement ...:

UPDATE table SET otherId = 10, status = 'NEWSTATUS' WHERE idRow = 23 AND status = 'CREATED'


0 commentaires

1
votes

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;


0 commentaires