我有一个名为ITEMSLIST的表
ItemName SourceID Origin Description
Item1 108 USA Item of Importance
Item2 112 USA Item of Importance
Item3 120 UK Item of Importance
Item4 108 USA Item of Importance
Item5 221 UK Item of Importance
Item6 221 USA Item of Importance
Item7 108 USA Item of Importance
Item8 139 USA Item of Importance
Item9 385 USA Item of Importance
Item10 111 UK Item of Importance
我试图执行以下操作:
如果SourceID与很长的列表中的项目匹配,则Origin需要从USA更改为UK。该列表不是来自表格,它只是一个值列表
该列表的缩短版本为108,221,385
我尝试过使用过的情况,但不能正常使用
UPDATE ITEMSLIST
SET Origin = 'UK'
WHERE
CASE
WHEN EXISTS (SELECT *
FROM ITEMSLIST
WHERE a.SourceList = SourceID)
END
FROM (VALUES
('108'),
('221'),
('385')) a(SourceList)
答案 0 :(得分:1)
您正在寻找join
:
UPDATE il
SET Origin = 'UK'
FROM ITEMSLIST il JOIN
(VALUES
('108'),
('221'),
('385')
) a(SourceList)
ON a.SourceList = il.SourceId;
答案 1 :(得分:1)
尝试使用以下内容:
更新ITEMSLIST SET Origin ='UK' 在哪里SourceID IN('108','221','385')
更新李 SET Origin ='UK' 来自ITEMSLIST李 在哪里存在(选择1来自ITEMSLIST il WHERE il.SourceID IN('108','221','385')