데이터베이스/SQL

[PostgreSQL] 문자열 한개 또는 여러개 치환하기(REPLACE, REGEXP_REPLACE, CASE WHEN)

DS지니 2021. 8. 8. 17:46
728x90
반응형

1. REPLACE() : 문자열 한 개 치환

SELECT REPLACE(컬럼, '문자열', '바꿀문자')

select customerid, custstate, replace(custstate,'A','000')
from customers;

 

2. REGEXP_REPLACE() : 다중 문자열 치환

REGEXP_REPLACE(컬럼, '문자열1|문자열2|문자열3', '바꿀문자')

 

1. 다중 문자열을 하나의 문자열로 치환하기

--custstate 지역 중 WA 지역에 사는 사람과 WA 가 아닌 지역에 사는 사람을 구분해서 보여주세요.--
select customerid, custstate, regexp_replace(custstate,'TX|OR|CA','Others') as newstate_flag
from customers;

 

* 같은 문제를 조건문을 사용해 풀 수도 있다. (CASE WHEN, THEN, ELSE, END AS)

select customerid, custstate , case when custstate='WA' then 'WA' else 'Others' end as newstate_flag
from customers c ;

 

 

 

2. 문자열 이용하기

select customerid, custphonenumber , regexp_replace(custphonenumber ,'[^[:digit:]]', '') as newstate_flag
from customers;

* [^[:digit:]] : 숫자가 아닌 모든 문자를 제거 한다

* [[:punct:]] : 특수문자만 제거 한다

 

 

 

728x90
반응형