DB2 将一列值复制到另一列
Posted
技术标签:
【中文标题】DB2 将一列值复制到另一列【英文标题】:DB2 Copy one column values to another column 【发布时间】:2021-02-04 21:45:58 【问题描述】:在 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 查询应该是什么样子吗?
【问题讨论】:
更新这么多行会很慢。您确定需要这样做吗? 是的。我需要这样做。 tableA 和 tableB 有什么关系? KEYA = KEYB吗?换句话说,对于 tableA 中的给定行,你怎么知道 tableB 中的哪一行来拉 IntValueB? 两个表之间没有共同的值。我想用表 A 中的 10 个键替换表 B 中 10 个键的任何值。 【参考方案1】:试试这个。
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;
【讨论】:
以上是关于DB2 将一列值复制到另一列的主要内容,如果未能解决你的问题,请参考以下文章