sql - Iseries SQL 更新

标签 sql db2-400

表1

Column1  Column2
aa         12
bb         12
cc         12
aa         12
bb         12

表2

Column1  Column2
aa         12
bb         13
cc         14
aa         15
bb         16

现在,使用Sql查询我需要根据table2到column1和table1.column1记录用table2.column2更新table1.column2

update Table1 a set a.Column2 = ( select b.Column2from Table2
b where A.column1= b.column1)

上述查询引发错误:

Null values not allowed in column or variable.

我正在尝试在两个不同的系统之间复制数据。

最佳答案

似乎有 table1 行没有任何匹配的 table2 行。在这种情况下,子查询返回 NULL。我猜 table1.column2 不允许 NULL?

添加 WHERE 子句以仅更新 table2 中匹配的行。

update Table1 a set a.Column2 = (select b.Column2 from Table2 b
                                 where A.column1= b.column1)
where exists (select 1 from Table2 b2
              where A.column1= b2.column1)

关于sql - Iseries SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38101883/

相关文章:

java - 从 DB2 中的表获取值

sql - 查询 400 中的计数未正确传递

php - 是否可以在不同的 PHP session 之间共享内存表?

MySQL 幻影表

java - TYPE_SCROLL_SENSITIVE 和 TYPE_FORWARD_ONLY 的区别

database - Db2 系列在重复键上插入

mysql - SQL 按属性分组并在该组中有多个时显示结果

mysql - 如何使 field = 的 where 条件始终为真?

php - jqGrid 集成工具栏搜索不起作用

C# ADO.Net 到 db2 iseries - 连接无效