안녕하세요
문자열에서 특정문자를 지워야 하는 일이 생겨서요ㅜㅜ
데이터 문자열 구조는 대충 XXXX@XXXX@XXXX 이런식으로 되어있습니다
X에는 숫자가 들어가구요 @에는 공백, 그러니까 아무것도 없이 '' 이렇게도 등록되고요
'-','~' 등등 구분자가 들어가게 됩니다
구분자가 꼭 들어가면 substr으로 자르면 될텐데 구분자 없이 ''으로 등록된 것도 있어서
replace로 치환해서 자르려고 하거든요..ㅜㅜ
근데 replace는 한가지의 특정문자만 설정할 수 있고, 게다가 제가 설정하는 구분자가 1개가 될 수도, 여러 개가 될 수도 있어서 유동적인걸 원하는데 안되려나요..ㅠㅠ
replace말고 다른 방법이나, 아니면 replace를 효과적으로 사용할수 있는 법 질문드려용
-- 제가 잘못 이해했었네요... -- 숫자의 자리수가 일정하다면 이렇게 잘라도 될 것 같아요 WITH T (STR) AS ( SELECT '123 456-,789.;012' FROM DUAL UNION ALL SELECT '987\654,321/098' FROM DUAL ) SELECT SUBSTR(AA.TXT, 1, 3) SUB1 , SUBSTR(AA.TXT, 4, 3) SUB2 , SUBSTR(AA.TXT, 7, 3) SUB3 , SUBSTR(AA.TXT, 10, 3) SUB4 FROM (SELECT REGEXP_REPLACE(STR, '[^0-9]+', '') TXT FROM T) AA