lob 컬럼 특정문자부터 pivot 방법 문의 1 8 2,245

by 세교동개득구 [SQL Query] [2023.01.25 09:35:51]


펑션을 써서 뷰테이블을 만들어야 할지 쿼리로 뷰테이블을 생성이 가능 할지 

궁금하여 문의드립니다. 

CLOB 형태의 컬럼에 

예) test ="123,5896,23" 형태의 문자열이 다른 문자열과 포함되어 다수 등록이 되어잇는데 

뷰테이블 형태로 

a

123

5896

23 

위의 row 형태로 뷰테이블 생성이 가능 할지 문의드립니다. 

펑션을 써야 하는지 아니면 쿼리로 가능 한지 문의드리며

어떤 함수를 써야 하는지 조언 주시면 찾아서 테스트 해보겟습니다. 

감사합니다.

by 우리집아찌 [2023.01.25 10:18:17]

로우가 여러게 있을때는 어떻게 표현되나요?


by 세교동개득구 [2023.01.25 10:24:05]

row가 여러개 잇을때도 뽑아내서 잘라서 저런식에 값 = row 형태로 표현해야 합니다. 

예) test = "123,456,7,8,9," free everbody test = "1,2,3,4,5,"

123

456

7

8

9

1

2

3

4

5


by 마농 [2023.01.25 10:32:05]

예로 들어 주신게? 1행인가요? 2행인가요? 모호하네요.
1행의 자료안에 test="..." 형태의 문자열이 1개뿐인지? 여러개 가능한지?


by 세교동개득구 [2023.01.25 10:55:22]

예가 정확하게 말씀드리면

description="1234" test="4444,589,4567," description="123" test="3333,123,456,111" 

이런식으로 값이 들어가잇고 디스크립션 뒤에 별칭은 다른이름으로 추가로 들어갈수 잇고 test="값,값,값," 형태가 1개일수도잇고 여러개일수도있습니다. 

test="값,값,값,", = test="4444,589,4567,"

test="값,값,값,값", = test="3333,123,456,111" 

제가 row 형태로 하고싶은게 

test="뒤에 값,값,값, 

4444

589

4567

3333

123

456

111

입니다.

이런형태이고 중복되서 표현되도 상관은업습니다. 


by 마농 [2023.01.25 12:28:52]
WITH t AS
(
SELECT 1 pk, TO_CLOB('description="1234" test="4444,589,4567," description="123" test="3333,123,456,111"') v FROM dual
UNION ALL SELECT 2, TO_CLOB('test="1,2,3"') FROM dual
)
SELECT pk
     , lv
     , rn
     , REGEXP_SUBSTR(x, '[^",]+', 1, rn) x
  FROM (SELECT pk
             , lv
             , SUBSTR(REGEXP_SUBSTR(v, 'test="[^"]+', 1, lv), 7) x
          FROM t
             , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 9)
         WHERE lv <= REGEXP_COUNT(v, 'test="')
        )
     , (SELECT ROWNUM rn FROM dual CONNECT BY LEVEL <= 9)
 WHERE rn <= REGEXP_COUNT(x, '[^",]+')
 ORDER BY pk, lv, rn
;

 


by 세교동개득구 [2023.01.25 13:50:59]

혹 description="1234" test="4444,589,4567," 처럼의 형태가 아닌 다른 문장들 사이에 끼어 잇는값이라면 해당부분을 추출하기 위해선 function을 만들어서 뽑아내는것이 더 바람직 하겟죠?


by 마농 [2023.01.25 13:54:01]

다른 문장들 사이에 끼어 있는 test="1,2,3" 형태만 추출하는 쿼리입니다.
제 생각에는 요구사항에 부합하는 듯 한데요? 혹시 아닌가요?


by 세교동개득구 [2023.01.25 14:15:46]

죄송합니다 제가 대입을 안해봣네요....ㅠㅠ 정말 감사합니다ㅠ 

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