如何编写SQL语句(用于DB2)来更新具有这些条件的表?

时间:2014-04-01 14:04:45

标签: sql db2

这就是我需要做的事情:

对于Table1中Name不为null或为空的每一行,Table2有一个匹配Name的行,将Table1中的另一列替换为Table2中列的内容,并将表1中的名称设置为null。 / p>

我似乎无法将这种逻辑包含在SQL中。

我真的不在乎Table2是否有多个具有匹配名称的行,只需抓住第一行就足够了。

1 个答案:

答案 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,'')<>''