2015-02-06 61 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 
      )