구분자로 된 데이터를 행으로 가능할가요? 0 4 894

by 경상도곰남 [MySQL] [2015.10.14 16:23:51]


구분자로 된 데이터를 행으로 가능 할까요?

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

 

데이터

A      B

------------

5      1|2
3      1|2
10    3|5

 

결과물

A      B

------------

5       1
5       2
3       1
3       2
10      3
10      5

by 우리집아찌 [2015.10.14 16:43:29]
b컬럼의 구분자는 한개인가요??

by 경상도곰남 [2015.10.14 16:45:30]

한개 입니다.


by 창조의날개 [2015.10.14 16:58:10]

WITH TT(A,      B) AS (
SELECT 5,      '1|2' FROM DUAL UNION ALL
SELECT 3,      '1|2' FROM DUAL UNION ALL
SELECT 10,     '3|5' FROM DUAL
)
SELECT A
     , REGEXP_SUBSTR(B,'[^|]+',1,LV) B
FROM TT
   , (SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= 100)
WHERE REGEXP_SUBSTR(B,'[^|]+',1,LV) IS NOT NULL
ORDER BY 1,2
;

 


by 마농 [2015.10.15 09:15:20]
SELECT a
     , lv
     , SUBSTRING_INDEX(SUBSTRING_INDEX(b, '|', lv), '|', -1) b
  FROM (SELECT 5 a, '1|2' b
        UNION ALL SELECT  3, '1|2'
        UNION ALL SELECT 10, '3|5' 
        ) a
 CROSS JOIN
       (SELECT 1 lv UNION ALL SELECT 2) b
;

 

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