我有两张桌子: 表A. ID Field1 ....
表B. ID Field2 Field3 ......
我想通过表B循环,如果表A中有一个具有相同ID的记录,则在表A中添加值Field2和Field3。
我不知道怎么做T-SQL!
答案 0 :(得分:2)
此更新不需要使用循环结构,您可以使用set操作以更简洁的方式解决此问题。如果我正确理解了这个问题,你想UPDATE表A中包含表B中的值。使用如下查询:
UPDATE TableA
SET TableA.Field2 = TableB.Field2, TableA.Field3 = TableB.Field3
FROM TableB
WHERE TableA.ID = TableB.ID
您可能希望在此查询中进行额外检查,以便在替换它们之前查看表A中字段2和3中的值。
(首先测试此查询的结果,从上面的UPDATE查询构建SELECT查询!)
答案 1 :(得分:0)
SELECT CASE
WHEN TableA.ID IS NULL THEN TableB.Field2
ELSE TableB.Field3
END as FieldX
FROM TableB LEFT OUTER JOIN TableA
ON TableA.ID = TableB.ID
答案 2 :(得分:0)
可能你可以这样做:
select tab2.id, (tab2.field2 + tab2.field3) as sumfield
from tab2 join tab1 on tab2.id = tab1.id
OR
select tab2.id, (tab2.field2 + tab2.field3) as sumfield
from tab2
join
(select distinct id from tab1) tab1
on tab2.id = tab1.id