文字列の中から部分文字列を取得(substr関数)

substr 関数を使うと文字列の中の指定した位置から指定した長さの部分文字列を取得することができます。ここでは SQLite における substr 関数の使い方について解説します。

(Last modified: )

substr関数の使い方

substr関数は文字列から部分文字列を取得するために使用します。書式は次の通りです。

substr(文字列, 開始位置, 文字の長さ)
substr(文字列, 開始位置)

1 番目の引数に指定した文字列の中から部分文字列を取得します。取得する部分文字列は 2 番目の引数で指定した位置から 3 番目の引数で指定した長さの文字列を取得します。 3 番目の引数を省略した場合は開始位置から文字列の最後までの文字列を取得します。

開始位置は最初の文字が 1 となり、 2 番目の文字が 2 と続いていきます。なお開始位置に負の値を指定することもできます。負の値で指定する場合、最後の文字が -1 となり最後から 2 番目の文字が -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 */

1番目の引数にカラム名を指定した場合は、カラムに含まれる値の部分文字列を取得します。

-- --

それでは実際に試してみます。次のようなテーブルを作成しました。

create table staff(id integer, name text, address text);

substr関数の使い方(1)

INSERT 文を使って次のようなデータを格納してあります。

insert into staff values(1, 'Yamada', '01:Tokyo');
insert into staff values(2, 'Suzuki', '02:Osaka');
insert into staff values(3, 'Hori', '03:Sapporo');
insert into staff values(4, 'Kudou', '01:Tokyo');
insert into staff values(5, 'Oota', '04:Nagoya');

substr関数の使い方(2)

それでは substr 関数を使って address カラム に格納されている値の中から4番目の文字から3文字分だけ部分文字列を取得してみます。

select id, name, substr(address, 4, 3) from staff;

substr関数の使い方(3)

カラムに格納されている値の指定した位置から指定した長さの部分文字列を取得することができました。

今度は substr 関数を使って address カラム に格納されている値の中から4番目の文字から最後までの部分文字列を取得してみます。

select id, name, substr(address, 4) from staff;

substr関数の使い方(4)

カラムに格納されている値の指定した位置から最後までの部分文字列を取得することができました。

-- --

substr 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。