Sql 根据另一个表中是否存在值进行更新

Sql 根据另一个表中是否存在值进行更新,sql,sql-server,syntax,sql-update,case,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语句,条件是表B中的“Number”值是否存在于表A中 Number Another 111 ZZZ 222 ZZZ 666 CCC 777

我有两张桌子

表A

Number
111       
222       
333       
444       
表B

Number    Another
111       AAA
222       BBB
666       CCC
777       DDD
我想做的是,应用一个UPDATE语句,条件是表B中的“Number”值是否存在于表A中

Number    Another
111       ZZZ
222       ZZZ
666       CCC
777       DDD
我知道我需要使用更新查询,可能还需要某种类型的连接,但我不确定语法


非常感谢您的帮助。

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

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

您可以使用直接从表1中选择并更新到表2中:

UPDATE table2 SET Another = 'ZZZ' 
FROM table1 t1 WHERE t1.Number = table2.Number

您也可以使用
exists

查询

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

所有答案都很好,但这是最适合我的场景的方法。谢谢,我也有类似的情况。是否可以使用它,但在它的末尾有一个WHERE子句,以过滤掉我不想更新的t2条目?