我需要基于where IN子句而不是不存在子句对表进行更新,但是出现语法错误。
update apodetail
set arr_amount =0,
arr_val = 0,
status = 'C'
where order_id IN (60035706,
60035736,
60035780,
60035846,
60035866,
60035867,
60035886,
60035892,
60035897,
60035898,
60035908,
60035967,
60036013)
and not exists (select *
from acrtrans
where order_id IN (60035706,
60035736,
60035780,
60035846,
60035866,
60035867,
60035886,
60035892,
60035897,
60035898,
60035908,
60035967,
60036013)
在使用where IN()运算符时,我打算有更多条目,但适用相同的原理。
错误
信息102,第15级,状态1,第33行,')'附近的语法不正确。
答案 0 :(得分:1)
在查询结束时尝试使用)
。插入语句未正确结束。
这是正确的!
update table1
set amount =0,
status = 'Closed'
where order_id IN (1001,1002,1003,1004)
and not exists (select * from table2
where order_id IN (1001,1002,1003,1004));