SQLite | SQLite 함수 | 문자열을 다른 문자열로 치환 (replace 함수)

replace() 함수를 사용하면 문자열에 저장된 일부 문자열을 다른 문자열로 치환한 값을 얻을 수 있다. 여기에서는 replace() 함수의 사용법에 대해 설명한다.

replace 함수 사용법

replace 함수는 문자열에 저장된 일부 문자열을 다른 문자열로 치환한 값을 얻기 위해 사용한다. 형식은 다음과 같다.

replace(대상 문자열, 치환되는 문자열, 바꿀 문자열)

첫 번째의 인수로 지정된 문자열에 저장된 두 번째 인수로 지정한 문자열을 세 번째 인수에 지정된 문자열로 치환한 값을 가져온다. 테이블의 데이터를 대체하는 것은 아니라는 점에 주의하자.

첫 번째 인수에 컬럼을 지정한 경우에는 컬럼에 저장되는 값 중에 두 번째 인수로 지정한 문자열을 세 번째 인수에 지정된 문자열로 치환한 값을 가져온다 .

그러면 실습으로 문자열 치환을 해보도록 하겠다. 먼저 다음과 같이 테이블을 만든다.

create table report (id integer, name text);
sqlite> create table report (id integer, name text);
sqlite> 

INSERT 문을 사용하여 다음과 같이 데이터를 추가한다.

insert into report values (1, 'report_2018_Seoul');
insert into report values (2, 'report_2018_Daejeon');
insert into report values (3, 'report_2018_Busan');
insert into report values (4, 'report_2017_Paju');
sqlite> insert into report values (1, 'report_2018_Seoul');
sqlite> insert into report values (2, 'report_2018_Daejeon');
sqlite> insert into report values (3, 'report_2018_Busan');
sqlite> insert into report values (4, 'report_2017_Paju');
sqlite> 

그러면 replace() 함수를 사용하여 name 컬럼에 저장되는 값 중에서 2018를 모든 2019에 변경된 값을 받아온다.

select name, replace(name, '2018', '2019') from report;
sqlite> .mode column
sqlite> .header on
sqlite> 
sqlite> select name, replace(name, '2018', '2019') from report;
name               replace(name, '2018', '2019')
-----------------  -----------------------------
report_2018_Seoul  report_2019_Seoul            
report_2018_Daeje  report_2019_Daejeon          
report_2018_Busan  report_2019_Busan            
report_2017_Paju   report_2017_Paju             
sqlite> 

컬럼에 저장되는 값에서 2018을 2019로 변환한 값을 받아올 수 있었다.

이번에는 replace 함수의 첫 번째 인수에 직접 문자열을 입력하여 값을 변환해 보자.

select replace('My first birthday', ' ', '_');
sqlite> select replace('My first birthday', ' ', '_');
replace('My first birthday', ' ', '_')
--------------------------------------
My_first_birthday                     
sqlite> 

문자열에 공백(’ ‘)이 언더바(’_’)로 변환된 것을 볼 수 있다.




최종 수정 : 2019-11-13