如何将一个表的一列数据传输到另一表的一列数据?

时间:2019-04-01 06:26:04

标签: sql sql-server

我有两个表:TableA和TableB,如下所示,我想将表A的xyz数据传输到表B的stu列

表A

abc       pqr         xyz

1     apple     1200

2     orange    1500

3     mango     2200

表B

abc    pqr      stu

1     apple     null

2     orange    null

3     mango     null

3 个答案:

答案 0 :(得分:0)

使用加入和更新

update b
set b.stu=a.xyz
from tableB b join 
tableA a on a.abc=b.abc

答案 1 :(得分:0)

使用update join

update b set stu=xyz
from tableb b inner join tablea
on a.abc=b.abc

答案 2 :(得分:0)

使用merge的一种可能的解决方案:

merge TableB as target
using TableA as source
on target.abc = source.abc
when matched then
update stu = source.xyz;

假定abc是两个表的主键,否则pqr也需要参与匹配条件:

merge TableB as target
using TableA as source
on target.abc = source.abc and target.pqr = source.pqr
when matched then
update stu = source.xyz;