SQL 문의 드립니다. 0 2 1,046

by zzhozang [2015.09.07 12:28:10]


안녕하세요

NAME VALUE
A 1;2;3;4
B 1;2;
C 1;2;3
D 1

 테이블에 위 와 같은 형식으로 데이터가 들어있는데요...

조회 결과를

NAME VALUE
A 1
A 2
A 3
A 4
B 1
B 2
C 1
C 2
C 3
D 1

위 처럼 ' ; ' 문자를 기준으로 각각의 ROW로 표시할 수 있는 방법이 있을지 문의드립니다.;

 

by 아발란체 [2015.09.07 12:49:02]
WITH T AS (
  SELECT 'A' AS v1, '1;2;3;4;5' AS v2 FROM DUAL
  UNION ALL SELECT 'B', '1;2;' FROM DUAL
  UNION ALL SELECT 'C', '1;2;3' FROM DUAL
  UNION ALL SELECT 'D', '1' FROM DUAL
), TC AS (
  SELECT MAX(REGEXP_COUNT(v2, ';') + 1) AS cnt FROM T
)
SELECT
  v1,
  REGEXP_SUBSTR(v2, '[^;]+', 1, lv)
FROM
  T, (SELECT LEVEL AS lv FROM TC CONNECT BY LEVEL <= cnt)
WHERE
  REGEXP_SUBSTR(v2, '[^;]+', 1, lv) IS NOT NULL
ORDER BY
  v1, lv
  

 


by zzhozang [2015.09.07 15:27:17]

정말 감사합니다.~~

 

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