Мы можем использовать предложение WITH в конструкции INSERT… SELECT.Так что-то вроде этого?
insert into table1
with s1 as (
select t.unique_id
, t.sequ
from table1 t
where t.col_id = 1
and t.col_nm = 'testq 1'
and t.col_val = 100 )
, s2 as (
select s1.*
, t.col_val
from s1
join table1 t
on t.sequ = s1.sequ
and t.unique_id = s1.unique_id
where t.col_id = 2
and t.col_nm = 'testc 1'
)
select s2.unique_id
,100 as col_id
,'test q100c' as col_nm
,s2.col_val
,s2.sequ
from s2
/
Я не уверен, что полностью понял ваши правила - я использовал col_val
из шага # 2 (что показывает ожидаемый результат), а не значение изШаг № 1, как говорится в вашем правиле 3 - но я надеюсь, что это даст вам старт.Кроме того, это может быть не очень эффективным подходом.Я не даю никаких гарантий относительно производительности большого объема данных.