UPDATE基于if值是否存在于另一个表中

时间:2017-03-04 09:15:15

标签: sql sql-server syntax sql-update case

我有两张桌子

表A

Number
111       
222       
333       
444       

表B

Number    Another
111       AAA
222       BBB
666       CCC
777       DDD

我想做的是,应用UPDATE语句,条件是" Number"表B中的值存在于表A中。因此该表最终会看起来像这样。

Number    Another
111       ZZZ
222       ZZZ
666       CCC
777       DDD

我知道我需要使用UPDATE查询,可能还有某种JOIN,但我不确定语法。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

是。您需要使用如下连接进行更新:

update t2
set t2.Another = 'ZZZ'
from table1 t1
join table2 t2 on t1.Number = t2.Number

答案 1 :(得分:2)

您可以直接使用SELECT FROM table1并更新到table2:

input

答案 2 :(得分:2)

您也可以使用exists

<强>查询

update t1
set t1.[Another] = 'ZZZ'
from [TableB] t1
where exists(
    select 1 from [TableA] t2
    where t1.[Number] = t2.[Number]
);