SELECT B.GBN,DECODE(MOD(ROWNUM,4),1,AMOUNT1,2,AMOUNT2,3,AMOUNT3,AMOUNT4) AS AMOUNT
FROM (SELECT 1 FROM DUAL CONNECT BY LEVEL<=4) A, TEST5 B
가상의 DUAL 테이블을 만들어서 묻지마 조인을 하게 되면,
행이 2x4 로 8개 행이 나오게 될 겁니다.
거기서 ROWNUM 을 구분자로 써서 DECODE로 나누어 주시면
원하는 결과를 얻게 될겁니다.
조금더 함수적으로 개념을 바꾸면 더 쉬워 집니다.
by 마농
[2008.08.07 10:00:21]
방법 1 : 각컬럼 조회쿼리를 union all 한다.
SELECT gbn, amount1 amount FROM 테이블
UNION ALL SELECT gbn, amount2 FROM 테이블
UNION ALL SELECT gbn, amount3 FROM 테이블
UNION ALL SELECT gbn, amount4 FROM 테이블
방법 2 : 테이블 복제 하여 첫번째 복제된것은 1번항목 2번?? 복제는 2번항목을 보여준다.
SELECT gbn
, DECODE(rn,1,amount1,2,amount2,3,amount3,4,amount4) amount
FROM 테이블
, (SELECT ROWNUM rn FROM dual CONNECT BY LEVEL <= 4)
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.