SQLite | SQLite 함수 | 문자열에서 일부분 추출 (substr 함수)
substr 함수를 사용하면 문자열의 지정된 위치에서 지정된 길이의 부분 문자열을 받아올 수 있다. 여기에서는 substr 함수의 사용법에 대해 설명한다.
substr 함수 사용법
substr 함수는 문자열에서 부분 문자열을 받아오는데 사용한다. 형식은 다음과 같다.
substr(문자열, 시작 위치, 문자의 길이)
substr(문자열, 시작 위치)
첫 번째의 인수로 지정된 문자열 중에서 부분 문자열을 받아온다. 받아온 부분 문자열은 두 번째의 인수로 지정된 위치에서 세 번째 인수에 지정된 길이의 문자열을 받아온다. 세 번째 인수를 생략하면 시작 위치에서 문자열의 끝까지의 문자열을 받아온다.
시작 위치는 첫 글자가 1이고, 두 번째 문자가 2로 이어진다. 또한 시작 위치에 음수 값을 지정할 수도 있다. 음수 값으로 지정하면 마지막 문자가 -1되고 마지막에서 두 번째 문자가 -2로 이어진다.
substr('database', 1, 3); /* dat */
substr('database', 1, 4); /* data */
substr('database', 5, 3); /* bas */
substr('database', 5); /* base */
substr('database', -3, 2); /* as */
첫 번째 인수에 컬럼명을 지정하면 컬럼에 저장된 값의 부분 문자열을 받아온다.
–
그러면 실습을 해보도록 하겠다. 먼저 다음과 같이 테이블을 만든다.
create table user (id integer, name text, address text);
sqlite> create table user (id integer, name text, address text);
sqlite>
INSERT 문을 사용하여 다음과 같이 데이터를 추가한다.
insert into user values (1, 'devkuma', '01:Seoul ');
insert into user values (2, 'kimkc', '02:Busan');
insert into user values (3, 'araikuma', '03:Daejeon');
insert into user values (4, 'happykuma', '01:Seoul ');
insert into user values (5, 'raccoon', '04:Paju ');
sqlite> insert into user values (1, 'devkuma', '01:Seoul ');
sqlite> insert into user values (2, 'kimkc', '02:Busan');
sqlite> insert into user values (3, 'araikuma', '03:Daejeon');
sqlite> insert into user values (4, 'happykuma', '01:Seoul ');
sqlite> insert into user values (5, 'raccoon', '04:Paju ');
sqlite>
그럼 substr 함수를 사용하여 address 컬럼에 저장되는 값 중에서 4번째 문자부터 3문자만큼 부분 문자컬럼을 받아온다.
select id, name, substr(address, 4, 3) from user;
sqlite> .mode column
sqlite> .header on
sqlite>
sqlite> select id, name, substr(address, 4, 3) from user;
id name substr(address, 4, 3)
---------- ---------- ---------------------
1 devkuma Seo
2 kimkc Bus
3 araikuma Dae
5 raccoon Paj
4 happykuma Seo
sqlite>
컬럼에 저장되는 값의 지정한 위치로부터 지정한 길이의 부분 문자열을 받올 수 있었다.
이번에는 substr 함수를 사용하여 address 컬럼에 저장되는 값 중에서 4번째 문자부터 끝까지의 부분 문자열을 받아와 본다.
select id, name, substr(address, 4) from user;
sqlite> select id, name, substr(address, 4) from user;
id name substr(address, 4)
---------- ---------- ------------------
1 devkuma Seoul
2 kimkc Busan
3 araikuma Daejeon
5 raccoon Paju
4 happykuma Seoul
sqlite>
컬럼에 저장되는 값의 지정한 위치부터 끝까지의 부분 문자열을 받아올 수 있었다.
최종 수정 : 2019-11-13