안녕하세요! 쿼리 작성 도중 풀리지 않는 문제가 있어 질문드립니다.
SELECT regexp_substr(v, '[^(::)]+', 1, 1 ) as a
,regexp_substr(v, '[^(::)]+', 1, 2 ) as b
,regexp_substr(v, '[^(::)]+', 1, 3 ) as c
,regexp_substr(v, '[^(::)]+', 1, 4 ) as d
,regexp_substr(v, '[^(::)]+', 1, 5 ) as e
FROM (SELECT 'a::b:::::b-1::c:c-1:c-2' v FROM dual);
해당쿼리인데요..
문자열을 구분하려고 하고,, 문자열의 : 의 갯수가 랜덤할 수 있습니다.
예로 들면 a::b:::::b-1::c:c-1:c-2 라고 할때
위 쿼리처럼 정규식으로 문자열 구분 시
a
b
b-1
c
c-1
로 노출됩니다.
제가 원하는 것은
a
b:::::b-1
c:c-1:c-2
입니다.
: 의 개수가 꼭 2개일때만 (::) 구분자로 사용하고싶습니다.
정규식으로 어떻게 작성해야 할까요?
알려주시면 감사드리겠습니다.ㅠㅠ