0
column value: 'D:5:testps:12345|blah blah/blah'
기대 값 : 3 세미콜론 후 파이프 전에 D 반환 값으로 시작하는 값을 필터링 할 것입니다 12345
정규식
column value: 'D:5:testps:12345|blah blah/blah'
기대 값 : 3 세미콜론 후 파이프 전에 D 반환 값으로 시작하는 값을 필터링 할 것입니다 12345
정규식
select column_value,
regexp_substr(column_value, '([^:]*:){3}([^|]*)\|', 1, 1, null, 2) as str
from (
select 'D:5:testps:12345|blah blah/blah' as column_value from dual union all
select 'XD:5:testps:12345|blahblah/blah' as column_value from dual
)
where column_value like 'D%'
;
COLUMN_VALUE STR
------------------------------- -----
D:5:testps:12345|blah blah/blah 12345
당신은 regex_replace
사용할 수 있습니다
select case when col like 'D%'
then regexp_replace(col, '^([^:]*:){3}(\d+)\|.*', '\2') num
end
from t;
가 생산 :
12345
안부가 D로 시작하지 않는 경우가 null 생산
무엇 것이다 않는 문자열이 반환 D로 시작하지 않습니까? (나는 OP가 아무것도 리턴하지 않았다고 생각합니다 - 심지어 NULL도 아닙니다.) NULL은 여전히 D로 시작하는 문자열에서 유효한 리턴입니다! – mathguy