我有以下UPDATE
声明:
update MESSAGES set status=
(select (CASE
WHEN from_id='111111111'
THEN (CASE
WHEN status='A'
THEN 'S'
WHEN status='R'
THEN 'D'
END)
WHEN to_id='111111111'
THEN (CASE
WHEN status='A'
THEN 'R'
WHEN status='S'
THEN 'D'
END)
END)
as status_value)
where primary_key='236499681204'
and status_value not null ;
此查询的问题是,在最后一行,status_value
无法识别。如果我删除最后一个比较and status_value not null
,它会起作用。我不希望上面的版本可以工作,但是有人可以告诉我一个可以达到同样效果的替代方案吗?
有没有办法可以AS
在查询中使用关键字UPDATE
来定义变量status_value
?
编辑
实际要求不仅是我检查是否status_value
是null
,而且如果是,我不执行任何更新null