将递增索引行从一个表插入到另一个基于范围的表中

时间:2016-08-04 14:14:43

标签: sql oracle11g range sql-insert

我有两张这样的表:Table A enter image description here

如何在表B中的表A中插入新行,以匹配表A中定义的给定范围?

Expected Result

即使我认为这将是非常直接的,我无法找到任何关于这个 - .- 请原谅我糟糕的英语,并提前感谢你

1 个答案:

答案 0 :(得分:0)

首先,将表A复制到表A_Ranges。这样它就不会干扰结果数据,您将来可以重复使用它。 表A_Ranges准备就绪后,清除表A. 以下内容将匹配B中的每条记录,并具有适当的范围:

INSERT INTO A(Range_From, Range_To, payload, IDX, Detail)
SELECT A_Ranges.Range_From, A_Ranges.Range_To, A_Ranges.payload, B.IDX, B.Detail
FROM A_Ranges
INNER JOIN B ON B.IDX BETWEEN A_Ranges.Range_From and A_Ranges.Range_To