쿼리 질문드립니다. 0 1 316

by 유아독종 [SQL Query] [2018.05.22 19:01:34]


안녕하십니까

질문이 있습니다.


년도    내용
==========================================
2011    대한민국,미국,일본,중국
2012    영국,미국,호주
2013    프랑스,독일,스위스

이런 데이터를 아래와 같은 형태로 결과를 확인하고 싶습니다.

2011        2012     2013
대한민국   영국     프랑스
미국         미국     독일
일본         호주     스위스
중국


고수님들의 고견 부탁드립니다.
 

by 마농 [2018.05.23 09:12:26]
WITH t AS
(
SELECT '2011' yyyy, '대한민국,미국,일본,중국' v FROM dual
UNION ALL SELECT '2012', '영국,미국,호주' FROM dual
UNION ALL SELECT '2013', '프랑스,독일,스위스' FROM dual
)
SELECT MIN(DECODE(yyyy, '2011', REGEXP_SUBSTR(v, '[^,]+', 1, lv))) "2011"
     , MIN(DECODE(yyyy, '2012', REGEXP_SUBSTR(v, '[^,]+', 1, lv))) "2012"
     , MIN(DECODE(yyyy, '2013', REGEXP_SUBSTR(v, '[^,]+', 1, lv))) "2013"
  FROM t
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 9)
 WHERE lv <= REGEXP_COUNT(v, '[^,]+')
 GROUP BY lv
 ORDER BY lv
;

 

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