품목에 구분별로 다래와 같이 한 로우가 존재할때
품목 구분1 수량 금액 구분2 수량 금액 구분3 수량 금액
A 10 1 100 20 2 200 22 3 150
결과값
품목 구분 수량 금액
A 10 1 100
A 20 2 200
A 22 3 150
세 로우로 나오게 할수는 없을까요?
세번 UNION 걸어야 하면 너무 비효율 적이라서요... 먼저 감사인사 드립니다.
WITH t AS ( SELECT 'A' item , 10 gbn_1, 1 cnt_1, 100 amt_1 , 20 gbn_2, 2 cnt_2, 200 amt_2 , 22 gbn_3, 3 cnt_3, 150 amt_3 FROM dual ) SELECT item , lv , DECODE(lv, 1, gbn_1, 2, gbn_2, 3, gbn_3) gbn , DECODE(lv, 1, cnt_1, 2, cnt_2, 3, cnt_3) cnt , DECODE(lv, 1, amt_1, 2, amt_2, 3, amt_3) amt FROM t , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 3) ;
감사합니다.
한 걸음 더 나갈수있어서 행복하네요..
WITH t AS ( SELECT 'A' item , 10 gbn_1, 1 cnt_1, 100 amt_1 , 20 gbn_2, 2 cnt_2, 200 amt_2 , 22 gbn_3, 3 cnt_3, 150 amt_3 FROM dual ) SELECT * FROM t UNPIVOT ( (gbn, cnt, amt) FOR lv IN ( (gbn_1, cnt_1, amt_1) AS 1 , (gbn_2, cnt_2, amt_2) AS 2 , (gbn_3, cnt_3, amt_3) AS 3 ) ) ;