我无法弄清楚如何解决这个问题。 我有一个表(A)我需要更新,结构如下:
CODE VALUE
1 a
2 null
3 null
etc...
然后我有另一个表(B)具有相同的结构,但每个值都设置为:
CODE VALUE
1 a
2 b
3 c
我需要做的是将数据从表B复制到表A,其中A.CODE = B.CODE但仅在未设置A.VALUE的情况下。 这样做的最佳查询是什么?由于我处理的是2000行,所以不能手工完成。
我写了类似的东西,但它似乎不起作用:
update A set VALUE =
(select b.VALUEfrom B b, A a where b.CODE = a.CODE)
提前致谢!
答案 0 :(得分:2)
UPDATE a SET a.Value = b.Value
FROM TableA a
INNER JOIN TableB b ON (a.CODE = b.CODE)
WHERE a.VALUE IS NULL
答案 1 :(得分:1)
检查a.VALUE是否设置为进行更新,并且只从内部子句中的B表中选择(并使用外部子句中的A值):
update A
set VALUE = (select B.VALUE from B where B.CODE = A.CODE)
where VALUE IS NULL;