文字列の先頭と最後から空白文字を取り除く(trim関数, rtrim関数, ltrim関数)

trim 関数を使うと文字列の先頭や最後から空白文字を取り除いた文字列を取得することができます。 rtrim 関数も ltrim 関数も同じ目的で使用されます。ここでは SQLite における trim 関数の使い方について解説します。

(Last modified: )

trim関数の使い方

trim 関数は文字列の前後から指定した文字を削除するために使用します。書式は次の通りです。

trim(文字列)
trim(文字列, 文字)

trim 関数の主な目的は指定した文字列の先頭や最後に付いている空白文字を取り除くために使用します。具体的には文字列の先頭が空白文字だった場合に空白文字でない文字が現れるまでの空白文字を全て取り除きます。また同じように文字列の最後が空白文字だった場合に、文字の先頭に向かって空白文字ではない文字が現れるまで空白文字を全て取り除きます。

文字列の先頭及び最後から空白文字を取り除きますが、文字列の中に現れる空白文字は取り除きません。

引数にカラム名を指定した場合には、カラムに含まれる値から先頭や最後の空白文字を取り除いたものを取得します。

なお2番目の引数に文字を指定した場合、空白文字ではなく2番目の引数に指定した文字を文字列の前後から削除します。

同じ目的で使用される関数に rtrim 関数と ltrim 関数があります。 rtrim 関数は文字列の最後から指定した文字を削除するために使用します。 ltrim 関数は文字列の先頭から指定した文字を削除するために使用します。書式は次の通りです。

rtrim(文字列)
rtrim(文字列, 文字)

ltrim(文字列)
ltrim(文字列, 文字)

-- --

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

create table msgdb(id integer, msg text);

trim関数の使い方(1)

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

insert into msgdb values(1, ' Hello! ');
insert into msgdb values(2, ' Good Bye ');
insert into msgdb values(3, '__Thank you__');

trim関数の使い方(2)

それでは trim 関数および ltrim 関数と rtrim 関数を使って msg カラムに格納されている値の中から先頭と最後にある空白文字を取り除いた文字列を取得してみます。

select id, quote(trim(msg)), quote(ltrim(msg)), quote(rtrim(msg)) from msgdb;

trim関数の使い方(3)

結果が分かりやすいように quote 関数を使って取得した値をクォートして表示しています。カラムに格納されている値の先頭と最後にある空白文字を取り除いた文字列を取得することができました。(quote 関数については「文字列をシングルクォーテーションで囲った値を取得(quote関数)」を参照されてください)。

次に trim 関数および ltrim 関数と rtrim 関数を使って msg カラムに格納されている値の中から先頭と最後にあるアンダーバー(_)を取り除いた文字列を取得してみます。

select id, trim(msg, '_'), ltrim(msg, '_'), rtrim(msg, '_') from msgdb;

trim関数の使い方(4)

テーブルに格納されている最後のデータに関してカラムに格納されている値の先頭と最後にあるアンダーバー(_)を取り除いた文字列を取得することができました。

-- --

trim 関数、 rtrim 関数、 ltrim 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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