仅当参数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
我该怎么办?
答案 0 :(得分:0)
听起来像您只需要带有UPDATE
子句的简单WHERE
。
UPDATE table
SET status = 'NEWSTATUS'
WHERE status = 'CREATED';
答案 1 :(得分:0)
您只是在寻找...:
UPDATE table SET otherId = 10, status = 'NEWSTATUS' WHERE idRow = 23 AND status = 'CREATED'
答案 2 :(得分:0)
我认为您需要一个CASE
表达式来分配status
:
UPDATE table t
SET t.otherId,
t.status = (CASE WHEN t.status = 'CREATED'
THEN '10' ELSE 'NEWSTATUS'
END)
WHERE t.idRow = 23;