여러컬럼값을 로우로 변환하고 싶습니다. 0 1 730

by 푸릉이 [2018.08.20 14:34:10]


ymd     dept    seq event1     event2     event3    event4
201801  A    0001   Y                Y           
201801   B   0002   Y                              Y          Y        
이런 테이블이 있는데 이것을  

ymd dept seq codeVal
201801  A    0001  01 
201801  A    0001  02
201801  B    0002  01
201801  B    0002  03
201801  B    0002  04

이런식으로 변환하고 싶습니다.

by 우리집아찌 [2018.08.20 15:17:55]
WITH T (ymd , dept , seq , event1 , event2 , event3 , event4 ) AS (
SELECT '201801','A','0001','Y','Y','','' FROM DUAL UNION ALL           
SELECT '201801','B','0002','Y','','Y','Y' FROM DUAL     
)

    SELECT YMD , DEPT , SEQ , VAL 
      FROM T 
   UNPIVOT ( CODE FOR VAL IN ( EVENT1 AS '01', EVENT2  AS '02' , EVENT3  AS '03' , EVENT4  AS '04' ) )

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입