안녕하세요
아래 문자열 데이터를 아래 결과처럼 뽑고 싶습니다 섞여있는 숫자의 스페이스바 기준으로 앞까지 자르고 싶습니다 답변좀 부탁드릴게요^^
-- 데이터 COL1 A BB 111 DDD A BB CCC 111 A BB CCC DDD 111 EEE
-- 결과 COL2 A A BB A BB CCC
-- 데이터(쿼리) WITH T AS ( SELECT 'A BB 111 DDD' AS COL1 FROM DUAL UNION ALL SELECT 'A BB CCC 111' AS COL1 FROM DUAL UNION ALL SELECT 'A BB CCC DDD 111 EEE' AS COL1 FROM DUAL ) SELECT COL1 FROM T;
SELECT col1 , REGEXP_REPLACE(col1, ' [^0-9 ]+ [0-9].*') result FROM t ;
WITH T AS ( SELECT 'A B1B 111 DDD' AS COL1 FROM DUAL UNION ALL SELECT 'A B2B CCC 111' AS COL1 FROM DUAL UNION ALL SELECT 'A BB CCC DDD 111 EEE' AS COL1 FROM DUAL ) SELECT COL1 FROM T;
만약에 위에처럼 데이터가 생겼다면 어떻게 해야할까요?ㅠㅠ
SELECT col1 , REGEXP_REPLACE(col1, ' [^ ]+ [0-9]+( |$).*') result FROM t ;
마농님 답변 감사합니다^^
한가지만 더 여쭤볼게요
아래쿼리에서 COL1의 데이터를 COL2의 데이터로 만들려면 어떻게 해야 할까요?
주소정보의 시군구 기준으로 데이터를 뽑고 싶어요 ㅠㅠ
WITH T AS ( SELECT '전북 익산시 111 DDD' AS COL1, '전북 익산시' AS COL2 FROM DUAL UNION ALL SELECT '전남 영광군 111 DDD' AS COL1, '전남 영광군' AS COL2 FROM DUAL UNION ALL SELECT '전북 전주시 덕진구 111' AS COL1, '전북 전주시 덕진구' AS COL2 FROM DUAL ) SELECT COL1, COL2 FROM T;
SELECT col1 , REGEXP_REPLACE(col1, ' [0-9]+( |$).*') col2 FROM t ;