ㅜ.ㅡ 가로로 표현된 테이블을 세로로~표현할려고 하는데요..ㅜ.ㅡ 0 2 1,406

by 여경구 [2008.08.07 09:23:53]


 

GBN     AMOUNT1       AMOUNT2       AMOUNT3      AMOUNT4

  A              10                      20                      30                  40

 B              10                      20                      30                  40

 

실제 테이블 구성은 위에 처럼 데이터가 들어가 있습니다..

허나....문제가..뭐냐하면..

구분값 A에 대하여 각 네컬럼의 데이터가 각각 있지만..

A    10

A    20

A    30

A   40            

B   10...

이런식으로 표현해야 하거든요... 어떻게 하면 좋을까요..ㅜ.ㅡ

고수님들의....조언을 부탁드려요...

 

 

by 최용호 [2008.08.07 09:59:55]
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() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입