밑에 콤마로 분리..하다 보니 궁금한게 계속 생기네요... 0 4 890

by 동동동 [SQL Query] [2021.04.07 09:27:17]


안녕하세요...항상 도움 받고 있어 감사드립니다..

밑에 콤마로 분리...http://gurubee.net/article/84257 를 하다 보니 계속해서 궁금한게 생기네요..

 

XMLTABLE 을 이용해서 Dummy를 생성 및 콤마로 분리시킬수 있던데요..

그런데 문자는 반드시 쌍따음표(") 로 묶어 줘야만 실행이 가능하네요..

 

WITH "예능" ("프로그램명", MC, "방송사") AS (
SELECT '유 퀴즈 온 더 블럭', '"유재석","조세호"', 'tvN' FROM DUAL UNION ALL
SELECT '강호동의밥심', '"강호동","남창희"', 'SBSPlus' FROM DUAL UNION ALL
SELECT '아는형님', '"강호동","서장훈","이수근","김희철",".."', 'JTBC' FROM DUAL UNION ALL
SELECT '런닝맨', '"유재석","김종국","전소민","이광수",".."', 'SBS' FROM DUAL UNION ALL
SELECT '무엇이든 물어보살', '"서장훈","이수근"', 'KBS joy' FROM DUAL UNION ALL
SELECT '나혼자산다', '"박나래","기안84","성훈",".."', 'MBC' FROM DUAL UNION ALL
SELECT '슈가맨', '"유재석","유희열"', 'JTBC' FROM DUAL
)
SELECT 프로그램명
     , MC
     , 방송사
     , (COLUMN_VALUE).GETSTRINGVAL() AS NM
FROM 예능
  ,  XMLTABLE(MC)
 ;

 

지금은 쌍따음표를 붙여서 테스트 해보고 있는데요...

혹시 콤마로 구분된 데이터에 쌍따음표를 손쉽게 붙일수 있는 방법이 있을까요?

 

WITH "예능" ("프로그램명", MC, "방송사") AS (
SELECT '유 퀴즈 온 더 블럭', '유재석,조세호', 'tvN' FROM DUAL UNION ALL
SELECT '강호동의밥심', '강호동,남창희', 'SBSPlus' FROM DUAL UNION ALL
SELECT '아는형님', '강호동,서장훈,이수근,김희철,..', 'JTBC' FROM DUAL UNION ALL
SELECT '런닝맨', '유재석,김종국,전소민,이광수,..', 'SBS' FROM DUAL UNION ALL
SELECT '무엇이든 물어보살', '서장훈,이수근', 'KBS joy' FROM DUAL UNION ALL
SELECT '나혼자산다', '박나래,기안84,성훈,..', 'MBC' FROM DUAL UNION ALL
SELECT '슈가맨', '유재석,유희열', 'JTBC' FROM DUAL
)
SELECT *
  FROM 예능
;

 

항상 도움 주셔서 감사드립니다...꾸벅...

by 랑에1 [2021.04.07 11:23:21]
SELECT 프로그램명
     , '"' || REPLACE(MC, ',', '","') || '"' MC
     , 방송사
FROM 예능

-- 정규식으로는 다른분이.. ㅎㅎ

 


by 동동동 [2021.04.07 11:29:28]

랑에님 답변 감사드립니다...


by 마농 [2021.04.07 11:24:32]

XMLTABLE(mc) 구문은 11G 에서는 에러 나네요.
12C 에서는 정상 수행

-- 따옴표(") 붙이기
SELECT 프로그램명
     , MC
     , 방송사
     , '"' || REPLACE(mc, ',', '","') || '"' x
  FROM 예능
;

 


by 동동동 [2021.04.07 11:29:42]

마농님 답변 감사드립니다...

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