0

我有两个表:表 A ID Field1 ....

表 B ID 字段 2 字段 3 ...

我想通过表 B 循环,如果表 A 中存在具有相同 ID 的记录,则在表 A 中添加值 Field2 和 Field3。

我不知道怎么用 T-SQL 做!

4

3 回答 3

2

此更新不需要使用循环构造,您可以通过使用集合操作以更简洁的方式解决它。如果我正确理解了这个问题,您想使用表 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 查询!)

于 2012-06-08T10:02:58.797 回答
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
于 2012-06-08T09:54:02.660 回答
0

可能你可以像这样简单地做到这一点:

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
于 2012-06-08T10:00:30.997 回答