我试图在DB2 for IBM i(AS400)上使用UPDATE SELECT语句

时间:2015-02-06 20:26:05

标签: ibm-midrange db2-400

任何人都可以帮我解决DB2 for i上的UPDATE SELECT语句(以前称为AS400)吗?我试图根据信息更新一个表。在另一张桌子里。谢谢!

1 个答案:

答案 0 :(得分:1)

UPDATE tbla A
SET cola = (SELECT colb
             FROM tblb B
            WHERE a.key = b.key
           )

以上假定也是   - 对于tbla中的每个键,tblb中都有一行   - 或者可乐允许NULL值

如果假设为假,那么您将收到有关可乐不允许NULL的错误。

您需要使用COALESCE来提供默认值,或者不尝试更新tbla中tblb中没有匹配项的行。

最后,DB2 for i允许Row-Value-Expressions,因此以下内容也是有效的:

UPDATE tbla A
SET (cola1, cola2) 
         = (SELECT colb1, colb2
             FROM tblb B
            WHERE a.key = b.key
           )