2022年8月20日土曜日

SQLite3 前方、後方一致した部分を削除する(trim())

概要

前方、後方一致した部分を削除するにはtrimを利用する。

trimltrimrtrimを同時に使ったような関数になる。
それぞれの関数については以下の記事参照のこと。

ある文字列と文字列を比較して一致した部分を削除する、という機能なので 使い方を理解すれば結構便利。

構文


trim(string1)
trim(string1, string2)
                

第2引数を指定しないと第1引数の前後の半角空白が削除される。
(※全角の空白は削除されないので注意)

実行例


sqlite> select trim('abcdefg', '');
abcdefg

sqlite> select trim('abcd');
abcd

sqlite> -- # 1.
sqlite> select trim('    abcd');
abcd

sqlite> -- # 2.
sqlite> select trim('abcd    ');
abcd

sqlite> -- # 3.
sqlite> select trim('    abcd    ');
abcd

sqlite> -- # 4.
sqlite> select trim('abcd', 'ab');
cd

sqlite> -- # 5.
sqlite> select trim('abcd', 'cd');
ab

sqlite> -- # 6.
sqlite> select trim('abcd', 'bc');
abcd

sqlite> -- # 7.
sqlite> select trim('abcd', 'abxy');
cd

sqlite> -- # 8.
sqlite> select trim('abcd', 'xycd');
ab

sqlite> -- # 9.
sqlite> select trim('abcdef', 'abxyef');
cd

sqlite> -- # 10.
sqlite> select trim('defg', 'abcdefg');
                                        
                
  1. 第2引数を省略すると半角空白が削除される(文字列の前方)
  2. 第2引数を省略すると半角空白が削除される(文字列の後方)
  3. 第2引数を省略すると半角空白が削除される(文字列の前後)
  4. 前方一致している「ab」の部分が削除される
  5. 後方一致している「cd」の部分が削除される
  6. 前方・後方一致ではないので削除されない
  7. 前方一致している「ab」の部分のみが削除される
  8. 後方一致している「cd」の部分のみが削除される
  9. 前方・後方一致している「ab」「cd」がそれぞれ削除される
  10. 前方・後方一致している部分は完全に削除される

参考URL