我有两个表:表 A ID Field1 ....
表 B ID 字段 2 字段 3 ...
我想通过表 B 循环,如果表 A 中存在具有相同 ID 的记录,则在表 A 中添加值 Field2 和 Field3。
我不知道怎么用 T-SQL 做!
我有两个表:表 A ID Field1 ....
表 B ID 字段 2 字段 3 ...
我想通过表 B 循环,如果表 A 中存在具有相同 ID 的记录,则在表 A 中添加值 Field2 和 Field3。
我不知道怎么用 T-SQL 做!
此更新不需要使用循环构造,您可以通过使用集合操作以更简洁的方式解决它。如果我正确理解了这个问题,您想使用表 B 中的值更新表 A。使用如下查询:
UPDATE TableA
SET TableA.Field2 = TableB.Field2, TableA.Field3 = TableB.Field3
FROM TableB
WHERE TableA.ID = TableB.ID
您可能想在此查询中进行额外检查,以查看表 A 中字段 2 和 3 中的值,然后再替换它们。
(要首先测试此查询的结果,请从上面的 UPDATE 查询构建一个 SELECT 查询!)
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
可能你可以像这样简单地做到这一点:
select tab2.id, (tab2.field2 + tab2.field3) as sumfield
from tab2 join tab1 on tab2.id = tab1.id
或者
select tab2.id, (tab2.field2 + tab2.field3) as sumfield
from tab2
join
(select distinct id from tab1) tab1
on tab2.id = tab1.id