我想插入这样的东西:
INSERT INTO Table1 (DATE1)
SELECT DATE1
FROM Table2
WHERE PERIOD_TYPE = 0 AND NEWNUM < 10000;
是否可以根据条件设置目标表的名称Table1:
PERIOD_TYPE = 0 AND NEWNUM < 10000
在WHERE原始表的谓词中Table2?
那是:
INSERT INTO Table3 (DATE1)
SELECT DATE1
FROM Table2
WHERE PERIOD_TYPE = 1 AND NEWNUM < 10000;
INSERT INTO Table4 (DATE1)
SELECT DATE1
FROM Table2
WHERE PERIOD_TYPE = 1 AND NEWNUM > 9999;
但是必须进行一种设计,而不是 10 个单独的插入。
在Oracle DB 中,解决方案是唯一的INSERT ALL(请参阅multi_table_insert)。
可重现的工作示例
让我们准备数据 具有不同结构的目标表:
插入自身:
结果: