728x90
반응형
기본 문법
SELECT REGEXP_REPLACE([컬럼명], '[변경하고 싶은 값1]|[변경하고 싶은 값2]', [변경된 값]) AS [컬럼명] FROM [테이블명]
예제
select REGEXP_REPLACE(user_name , '둘리|독산|성', '###') from public.JOINTABLE;
JOINTABLE에서 user_name 컬럼의 속성이
둘리,독산,성 인 녀석들을 전부 ###으로 변경해줌
왼쪽은 기본 select이고, 오른쪽은 REGEXP_REPLACE를 활용한 위의 쿼리문을 실행한 결과
근데 하다보니, 뭐가 문제인지는 모르겠지만, 영어인 녀석들은 REGEXP_REPLACE 함수가 제대로 먹지 않음..
그래서 첫번째 값은 제대로 변경이 되는데 | 다음에 있는 두번째 값들은 변경이 되지 않는데, 이유를 모르겠다..
아래는 자주 쓸 것 같은 정규식 몇개를 모아놓았다. 필요하면 갖다 쓰도록 하자.
-- 숫자를 전부 특정 문자로 변경 ( 중간에 .이 들어간 소수는 뒷자리 변경안됨 )
select regexp_replace([컬럼명], '[[:digit:]]+', [변경값]) from [테이블명];
-- 숫자를 제외한 모든(문자/특수문자)를 제거
select regexp_replace([컬럼명], '\D', [변경값], 'g') from [테이블명];
-- 특수문자 제거
SELECT regexp_replace([컬럼명], '[^a-zA-Z]', '') FROM [테이블명];
오라클에도 REGEXP_REPLACE 함수는 있음. 필요하면 같이 쓸 수 있을 것 같다.
728x90
반응형