QUES | ANS1 | ANS2 | ANS3 | ANS4 | ANS5 | ANS6 | ANS7 | ANS8 | ANS9 | ANS10 |
설문내용1 | 예 | 아니요 | ||||||||
설문내용2 | 매우그렇다 | 약간그렇다 | 보통이다 | 약간그렇지않다 | 매우그렇지않다 | |||||
설문내용3 | 그렇다 | 보통이다 | 아니다 | |||||||
주관식설문내용 |
설문내용1 |
예 |
아니요 |
설문내용2 |
매우그렇다 |
약간그렇다 |
보통이다 |
약간그렇지않다 |
매우그렇지않다 |
설문내용3 |
그렇다 |
보통이다 |
아니다 |
주관식설문내용 |
with t as (select '설문내용1' ques, '예' ans1, '아니오' ans2, null ans3, null ans4, null ans5, null ans6, null ans7, null ans8, null ans9, null ans10 from dual union all select '설문내용2', '매우그렇다', '약간그렇다', '보통이다', '약간그렇지않다', '매우그렇지않다', null, null, null, null, null from dual union all select '설문내용3', '그렇다', '보통이다', '아니다', null, null, null, null, null, null, null from dual union all select '주관식설문내용', null, null, null, null, null, null, null, null, null, null from dual ) select regexp_substr(ans_t, '[^,]+', 1, lv) as ans_t , lv from ( select ques , rtrim(ques||','||ans1||','||ans2||','||ans3||','||ans4||','||ans5||','||ans6||','||ans7||','||ans8||','||ans9||','||ans10, ',') ans_t from t), (select level lv from dual connect by level <= (select max(length(cnt) - length(replace(cnt, ',')))+1 from (select rtrim(ques||','||ans1||','||ans2||','||ans3||','||ans4||','||ans5||','||ans6||','||ans7||','||ans8||','||ans9||','||ans10, ',') cnt from t))) where regexp_substr(ans_t, '[^,]+', 1, lv) is not null order by ques, lv;