首页 > 解决方案 > DB2 将一列值复制到另一列

问题描述

在 DB2 中,我有 2 个表 - TableA 和 TableB。在表 A 中,有 10 行。在表 B 中,有 12 行。表 A 有一个名为 IntValueA 的列,其类型为 Integer。表 B 有一个名为 IntValueB 的列,其类型为 Integer。

我希望 TableA 的 IntValueA 替换任何 10 个 TableB 的 IntValueB 值,这样,TableA 和 TableB 将有 10 个共同值,其中 IntValueA=IntValueB。

IntValueA 可以替换任何 IntValueB。没有条件。

有人可以帮我看看 DB2 查询应该是什么样子吗?

标签: sqldb2sql-update

解决方案


尝试这个。

UPDATE 
(SELECT IntValueB, ROWNUMBER() OVER() RN_ FROM TableB) B
SET IntValueB = 
(
SELECT IntValueA 
FROM (SELECT IntValueA, ROWNUMBER() OVER() RN_ FROM TableA) A
WHERE A.RN_ = B.RN_
)
WHERE RN_ <= 10;

推荐阅读