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' ) )