比较2个不同表中的2列并更新列

时间:2012-06-13 14:49:25

标签: sql sql-server

我想比较表a和表b中的列

如果表a中的a值可以在表b中找到,那么我想用表'a'更新表a中的另一列,如果找不到它,我想说'不'。这就是我到目前为止所做的:

UPDATE a 
set
[CCA Match Org] = CASE WHEN b.[serial] = a.[CSI] THEN 'yes' ELSE 'no' END

我现在的错误是:

  

列前缀“b”与查询中使用的表名或别名不匹配。

2 个答案:

答案 0 :(得分:6)

假设联接在b.[serial] = a.[CSI]

UPDATE a
SET [CCA Match Org] = CASE WHEN b.[serial] IS NOT NULL 
  THEN 'yes' ELSE 'no' END
FROM a LEFT OUTER JOIN b
ON b.[serial] = a.[CSI];

答案 1 :(得分:0)

这是一个快速示例,不确定它是否适用于您的情况,因为您没有向我们提供有关表结构的更多信息。

UPDATE a SET col='Yes' WHERE a.id IN (SELECT a.id FROM a JOIN b ON a.CSI = b.serial)