Ibm midrange 我试图在DB2forIBMi(AS400)上使用UPDATESELECT语句

Ibm midrange 我试图在DB2forIBMi(AS400)上使用UPDATESELECT语句,ibm-midrange,db2-400,Ibm Midrange,Db2 400,有人能帮我在DB2fori(以前称为AS400)上使用UPDATESELECT语句吗?我正在尝试根据信息更新一个表。在另一张桌子上。谢谢大家! UPDATE tbla A SET cola = (SELECT colb FROM tblb B WHERE a.key = b.key ) 以上假设: -tbla中的每个键在tblb中都有一行 -或允许空值 如果假设为false,您将得到一个关于cola不允许NULL的错误 您

有人能帮我在DB2fori(以前称为AS400)上使用UPDATESELECT语句吗?我正在尝试根据信息更新一个表。在另一张桌子上。谢谢大家!

UPDATE tbla A
SET cola = (SELECT colb
             FROM tblb B
            WHERE a.key = b.key
           )
以上假设: -tbla中的每个键在tblb中都有一行 -或允许空值

如果假设为false,您将得到一个关于cola不允许NULL的错误

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

最后,DB2 for i允许行值表达式,因此以下内容也是有效的:

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

我认为你的问题需要更详细一点。您知道如何使用不同风格的SQL来实现这一点吗?请发布您尝试过的代码以及您想要使用的各种表中的列的描述。只需单击“编辑”即可编辑问题的文本,谢谢!另外,您使用的是哪一版本的IBM i?如果我们知道您需要的内容尚未包含在主题中,则会更容易提供帮助。你能澄清一下吗?