2015-02-06 35 views
1

任何人都可以用DB2 for i(以前称为AS400)上的UPDATE SELECT语句来帮助我吗?我正在尝试根据信息更新一个表格。在另一张桌子。谢谢!我想在IBM i上使用UPDATE SELECT语句(AS400)

+0

我认为你需要更详细一点在你的问题。你知道如何用不同风格的SQL来做到这一点吗? – 2015-02-06 20:40:55

+0

请发布您尝试的代码以及您要使用的各种表中的列的说明。只需点击“编辑”编辑您的问题的文本,谢谢!另外,你在什么版本的IBM? – 2015-02-06 20:57:22

+0

如果我们知道您尚未包含在[** DB2 for i文档**](http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71)中,那么它会更容易帮助您/sqlp/rbafyexsub4.htm?lang=en)。你能澄清吗? – user2338816 2015-02-08 02:11:34

回答

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

上述假定,要么 - 有在TBLA 在TBLB一排的每个键 - 或可乐允许NULL值

如果假设是错误的,你会得到关于可乐的错误不允许NULL。

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

最后,DB2为我允许行 - 值表达式,所以下面也有效:

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