SQLite | SQLite関数 | 文字列の先頭と末尾から文字を削除する(trim関数、rtrim関数、ltrim関数)
trim関数は文字列の先頭と末尾から空白を削除します。rtrim関数とltrim関数も同様に動作します。ここでは、これらの関数の使い方を説明します。
trim関数の使い方
trim関数は文字列の両端から指定した文字を削除します。
trim(文字列)
trim(文字列, 文字)
引数が1つの場合、trimは文字列の先頭と末尾に連続する空白を削除します。
注意
文字列の先頭と末尾の空白は削除されますが、文字列の途中にある空白は削除されません。
引数に列を指定すると、先頭と末尾の空白を除いた値を返します。第2引数を指定すると、空白の代わりにその文字を両端から削除します。
rtrim関数は文字列の末尾から、ltrim関数は先頭から指定した文字を削除します。
rtrim(文字列)
rtrim(文字列, 文字)
ltrim(文字列)
ltrim(文字列, 文字)
–
例で使用するテーブルを作成します。
create table msgdb (id integer, msg text);
sqlite> create table msgdb (id integer, msg text);
sqlite>
次のデータを追加します。
insert into msgdb values(1, ' Hello! ');
insert into msgdb values(2, ' Good Bye ');
insert into msgdb values(3, '__Thank you__');
sqlite> insert into msgdb values(1, ' Hello! ');
sqlite> insert into msgdb values(2, ' Good Bye ');
sqlite> insert into msgdb values(3, '__Thank you__');
sqlite>
trim、ltrim、rtrimを使い、msg列の値から空白を削除します。
select id, quote(trim(msg)), quote(ltrim(msg)), quote(rtrim(msg)) from msgdb;
sqlite> select id, quote(trim(msg)), quote(ltrim(msg)), quote(rtrim(msg)) from msgdb;
id quote(trim(msg)) quote(ltrim(msg)) quote(rtrim(msg))
---------- ---------------- ----------------- -----------------
1 'Hello!' 'Hello! ' ' Hello!'
2 'Good Bye' 'Good Bye ' ' Good Bye'
3 '__Thank you__' '__Thank you__' '__Thank you__'
sqlite>
quote関数で戻り値をシングルクォートで囲み、結果を確認しやすくしています。出力から、対応する端の空白が削除されたことが分かります。詳細は文字列をシングルクォートで囲む(quote関数)を参照してください。
次に、第2引数にアンダースコア(_)を指定し、各値の対応する端からアンダースコアを削除します。
select id, trim(msg, '_'), ltrim(msg, '_'), rtrim(msg, '_') from msgdb;
sqlite> select id, trim(msg, '_'), ltrim(msg, '_'), rtrim(msg, '_') from msgdb;
id trim(msg, '_') ltrim(msg, '_') rtrim(msg, '_')
---------- -------------- --------------- ---------------
1 Hello! Hello! Hello!
2 Good Bye Good Bye Good Bye
3 Thank you Thank you__ __Thank you
sqlite>
最後の行では、trimが両端、ltrimが先頭、rtrimが末尾のアンダースコアを削除しています。