使用join使用update语句更新表

时间:2015-03-04 07:57:07

标签: sql-server

我有一张格式为

的表格

表1

COL1  COL2  COL3   COL4   COL5  COL6
aaaa  92809 ndjhd  3948309 NULL  90340
aaaa  90343 nadfj  1212121 NULL  21000
bbbb  20392 ndaop  2389299 NULL  23874

表1应该通过从其他格式为

的表中获取值来更新

表2

COL1 COL2  COL5
aaaa 92809 345
bbbb 20392 293

我使用以下更新statemnt来更新table1中的col5,其中包含table2中col5的值

UPDATE A
    SET A.col5=B.col5
    FROM table1 A
    INNER JOIN (select distinct col1,col2,col5 from table2) B
    ON A.col1=B.Col1

我面临的问题是这个更新语句只更新第一行。如何更新table1的COL 5,其中COL1在两个表之间匹配。

1 个答案:

答案 0 :(得分:1)

代码似乎是正确的。测试'aaaa'不包含空格。这是一个简单的测试查询。

select a.*, case when exists(select 1 from table2 b where b.col1=a.col1) then 'columns equal' else 'columns different' end col5_compare
from table1 a