这就是我需要做的事情:
对于Table1中Name不为null或为空的每一行,Table2有一个匹配Name的行,将Table1中的另一列替换为Table2中列的内容,并将表1中的名称设置为null。 / p>
我似乎无法将这种逻辑包含在SQL中。
我真的不在乎Table2是否有多个具有匹配名称的行,只需抓住第一行就足够了。
答案 0 :(得分:0)
在DB2
中,您可以使用MERGE
语句来完成工作
MERGE INTO Table1 A
USING Table2 B
on A.name=B.name
WHEN MATCHED
THEN UPDATE SET A.another_column=B.Table2_Column
, A.name=NULL;
在T-Sql中
您可以使用UPDATE
语句,其加入条件只会影响匹配行,如下所示:
Update A
set A.another_column=B.Table2_Column
, A.name=NULL
From Table1 A
inner join Table2 B
on A.name=B.name
Where isnull(A.name,'')<>''