oracle - 如何将一个表中的唯一值多次插入到另一个表中?

Posted

技术标签:

【中文标题】oracle - 如何将一个表中的唯一值多次插入到另一个表中?【英文标题】:oracle - How to insert unique values from a table to another multiple times? 【发布时间】:2014-06-05 20:46:12 【问题描述】:

使用 Oracle 12c,例如,我在一个表 TABLEA 的 PK 列中有 5 行,其值为 1、2、3、4、5。我想将值插入另一个表TABLEB 3 次。所以 TABLE 在插入后会有 15 行,其值为 1,1,1,2,2,2,3,3,3,4,4,4,5,5,5。我怎样才能做到这一点?

我正在尝试创建一个脚本,该脚本将插入从 TABLEATABLEB 的值(如果它们尚不存在)。目前我手动将TABLEA 中的每个值插入TABLEB 3 次。

【问题讨论】:

【参考方案1】:

您可以使用cross join。查询看起来像这样:

insert into t(pk)
    select pk
    from table t2 cross join
         (select 1 as n from dual union all select 2 from dual union all select 3 from dual
         ) n;

【讨论】:

以上是关于oracle - 如何将一个表中的唯一值多次插入到另一个表中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个表中的随机值添加到另一个 Oracle SQL

oracle唯一约束

如何将一个表中的值插入另一个表,然后更新原始表?

避免多次插入到oracle表中[关闭]

使用函数调用从选择中插入到表的 Oracle 中的性能

在 Oracle 中,我可以执行“将值插入或更新到表中”吗