; 로 분리하여 문자열을 가져오고 싶은데
아래아 같이 테스트를 해보니 결과가 이상하네요
+ 로 하나 다음것을 당겨 가져오고
* 로 하나 하나를 밀어(?) 보여주네요
SELECT regexp_substr(xxx, '[^;]*',1,1) x1
,regexp_substr(xxx, '[^;]*',1,2) x2
,regexp_substr(xxx, '[^;]*',1,3) x3
,regexp_substr(xxx, '[^;]*',1,4) x4
,regexp_substr(xxx, '[^;]+',1,1) c1
,regexp_substr(xxx, '[^;]+',1,2) c2
,regexp_substr(xxx, '[^;]+',1,3) c3
,regexp_substr(xxx, '[^;]+',1,4) c4
FROM (
SELECT 'a;;c;;' xxx FROM dual
)
결과----------------------------------
x1 x2 x3 x4 c1 c2 c3 c4
a
NULL NULL c a c NULL NULL
아래와 같이 생각한 결과가 나올려면 어떻게 해야 할까요?
x1 x2 x3 x4
a NULL c NULL
ps ) xxx 원래 다른값들의 연결값입니다
즉 a NULL c NULL NULL 이것을 연결하여 생성된것이에요.