用oracle SQL 查询结果集 用集循环 并用集的列做if条件 满足条件后集的列批量插

用oracle SQL 写一个查询结果集后 用结果集循环 并用结果集的列做if条件 满足条件后用结果集的列进行批量插

select n1,n2 from t1 where 1=1
for(上面的结果集){
if(n1==x){
insert into t2 value (n2,xx)

insert into t2 value (n2,xx1)

insert into t2 value (n2,xx2)

insert into t2 value (n2,xx3)

}
}
大概就是这个意思 只是用SQL表示出来

declare
cursor my_cursors is select * from t1 where 1=1 --定义游标
my_cursor varchar2(40); --这个数据类型根据自己的情况修改。
begin
for my_cursor in my_cursors loop

if my_cursor.n1=1 then
---做你的循环里内容
end if;

end loop;
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-28
用存储过程可以。
FOR C_ROW IN (SELECT N1,N2 FROM T1)
LOOP
IF C_ROW.N1 = X THEN
INSERT INTO T2 VALUE(C_ROW.N2,XX);
INSERT INTO T2 VALUE(C_ROW.N2,XX1);
依次类推……
END IF;
END LOOP;