Как обновить только если текстовое значение равно и конкретному тексту? - PullRequest
0 голосов
/ 06 апреля 2019

Мне нужно обновить строку, только если ее параметр status равен 'CREATED' до 'NEWSTATUS'. Я пытаюсь сделать это с помощью следующего кода, но это все еще не так.

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

Что мне делать?

Ответы [ 3 ]

0 голосов
/ 06 апреля 2019

Вы просто ищете ...:

UPDATE table SET otherId = 10, status = 'NEWSTATUS' WHERE idRow = 23 AND status = 'CREATED'
0 голосов
/ 06 апреля 2019

Я думаю, вы хотите выражение CASE для назначения status:

UPDATE table t
    SET t.otherId,
        t.status = (CASE WHEN t.status = 'CREATED' 
                         THEN '10' ELSE 'NEWSTATUS'
                    END)
    WHERE t.idRow = 23;
0 голосов
/ 06 апреля 2019

Звучит так, будто вы просто хотите UPDATE с предложением WHERE.

UPDATE table
       SET status = 'NEWSTATUS'
       WHERE status = 'CREATED';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...