by 훈훈후니 [Oracle 기초] insert [2015.06.22 21:51:44]
안녕하세요?
다름이 아니라 다음과 같은 insert를 하고 싶은데요.
예를 들어 select a, b, c from t; 라는 문장이 있을 때
a,b 로 group by 한 건 tab1에 넣고 그냥 a,b,c 는 tab2에 insert를 하려고 합니다.
해당 select query의 결과 row가 1억건이라고 가정하면 select를 2번 날리게 되면 2억건을 access해야 해서요
혹시 방법이 없을가요?? 감사합니다.
INSERT ALL WHEN gp = 1 THEN INTO tab1(a, b) VALUES(a, b) ELSE INTO tab2(a, b, c) VALUES(a, b, c) SELECT GROUPING(c) gp , a, b, c FROM t GROUP BY a, b, ROLLUP((c, ROWNUM)) ;
INSERT ALL WHEN rn = 1 THEN INTO tab1(a, b) VALUES(a, b) WHEN 1 = 1 THEN INTO tab2(a, b, c) VALUES(a, b, c) SELECT ROW_NUMBER() OVER(PARTITION BY a, b ORDER BY c) rn , a, b, c FROM t ;