PostgreSQL/文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM
の編集
Top
/
PostgreSQL
/
文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * PostgreSQLで文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM [#obd09ce5] 本資料はPostgreSQLで文字列の前後にある不要なスペースを削除する文字列関数TRIM, LTRIM, RTRIMについて記述します。~ #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連記事 [#k41241c7] -[[MySQLで文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM>MySQL/文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM]] -[[PostgreSQLでカラムの文字列を連結する・ダブルパイプ>PostgreSQL/PostgreSQLでカラムの文字列を連結する・ダブルパイプ]] * 環境および環境設定など [#u5bf67d0] 使用したOSはCentOS6になります。~ PostgreSQLのバージョンは8.4.13です。 以下の操作でPostgreSQLに接続、SQLを実行しデータベースおよびテーブルを作成しデータを投入しました。~ [root@centos6 ~]# su - postgres -bash-4.1$ createdb trimdb -bash-4.1$ psql trimdb psql (8.4.13) "help" でヘルプを表示します. trimdb=# create table trimtbl (c1 varchar(10)); CREATE TABLE trimdb=# insert into trimtbl values(' hello '),(' world '); INSERT 0 2 trimdb=# SELECT * FROM trimtbl; c1 ----------- hello world (2 行) * LTRIM, RTRIMを使ってみる。 [#lcfbdc66] 作成したテーブルを使用してLTRIM, RTRIMを使用してみます。 ダブルパイプで$を末尾に連結しています。~ これは、LTRIM, RTRIMで末尾が削除されているかを確認するために$をカラムの値の後ろに連結しました。 trimdb=# SELECT LTRIM(c1) || '$' , RTRIM(c1) || '$' from trimtbl; ?column? | ?column? ----------+---------- hello $ | hello$ world $ | world$ (2 行) 上記結果によりLTRIMは左側のスペースを削除し、RTRIMは右側のスペースを削除するのが確認できます。 * TRIMを使ってみる [#qe9c697c] TRIM関数は任意の文字列を削除することができます。 ** 引数指定なしでTRIMを実行する(前後のスペース削除) [#b45db69e] 引数を指定しないでtrimを実行すると前後のスペースを削除します。 trimdb=# SELECT '^' || TRIM(c1) || '$' from trimtbl; ?column? ---------- ^hello$ ^world$ (2 行) trim(文字列)は、以下のように書くこともできます。 select trim(both from カラム名) from テーブル名; 文字列を直に設定し実行することもできます。 trimdb=# SELECT '^' || TRIM(BOTH from ' SAKURA TSUBAKI ') || '$'; ?column? ------------------ ^SAKURA TSUBAKI$ (1 行) ** 引数指定を指定してみる [#t25b7bd2] 上記ではBOTHを指定しました。~ 以下では、LEADING, TRAILINGを使用した例を記します。 - LEADINGはLTRIMと同じ動作 trimdb=# SELECT '^' || TRIM(LEADING from ' SAKURA TSUBAKI ') || '$'; ?column? -------------------- ^SAKURA TSUBAKI $ (1 行) - TRAILINGはRTRIMと同じ動作 trimdb=# SELECT '^' || TRIM(TRAILING from ' SAKURA TSUBAKI ') || '$'; ?column? -------------------- ^ SAKURA TSUBAKI$ (1 行) ** 文字列を指定しトリミングする [#qc11d13f] BOTH, LEADING, TRAILINGを使用し文字列を指定してトリミングしてみる - BOTH BOTHの場合は指定した文字列(abc)を先頭と末尾から削除します。~ 以下の実行例はabcSAKURAabcがSAKURAになります。 trimdb=# SELECT TRIM(BOTH 'abc' from 'abcSAKURAabc'); btrim -------- SAKURA (1 行) - LEADING LEADINGの場合は指定した文字列(abc)を先頭(左側)から削除します。~ 以下の実行例はabcSAKURAabcがSAKURAabcになります。 trimdb=# SELECT TRIM(LEADING 'abc' from 'abcSAKURAabc'); ltrim ----------- SAKURAabc (1 行) - TRAILING TRAILINGの場合は指定した文字列(abc)を先頭(左側)から削除します。~ 以下の実行例はabcSAKURAabcがabcSAKURAになります。 trimdb=# SELECT TRIM(TRAILING 'abc' from 'abcSAKURAabc'); rtrim ----------- abcSAKURA (1 行) #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * PostgreSQLで文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM [#obd09ce5] 本資料はPostgreSQLで文字列の前後にある不要なスペースを削除する文字列関数TRIM, LTRIM, RTRIMについて記述します。~ #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連記事 [#k41241c7] -[[MySQLで文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM>MySQL/文字列の不要なスペースをトリミングする・TRIM・LTRIM・RTRIM]] -[[PostgreSQLでカラムの文字列を連結する・ダブルパイプ>PostgreSQL/PostgreSQLでカラムの文字列を連結する・ダブルパイプ]] * 環境および環境設定など [#u5bf67d0] 使用したOSはCentOS6になります。~ PostgreSQLのバージョンは8.4.13です。 以下の操作でPostgreSQLに接続、SQLを実行しデータベースおよびテーブルを作成しデータを投入しました。~ [root@centos6 ~]# su - postgres -bash-4.1$ createdb trimdb -bash-4.1$ psql trimdb psql (8.4.13) "help" でヘルプを表示します. trimdb=# create table trimtbl (c1 varchar(10)); CREATE TABLE trimdb=# insert into trimtbl values(' hello '),(' world '); INSERT 0 2 trimdb=# SELECT * FROM trimtbl; c1 ----------- hello world (2 行) * LTRIM, RTRIMを使ってみる。 [#lcfbdc66] 作成したテーブルを使用してLTRIM, RTRIMを使用してみます。 ダブルパイプで$を末尾に連結しています。~ これは、LTRIM, RTRIMで末尾が削除されているかを確認するために$をカラムの値の後ろに連結しました。 trimdb=# SELECT LTRIM(c1) || '$' , RTRIM(c1) || '$' from trimtbl; ?column? | ?column? ----------+---------- hello $ | hello$ world $ | world$ (2 行) 上記結果によりLTRIMは左側のスペースを削除し、RTRIMは右側のスペースを削除するのが確認できます。 * TRIMを使ってみる [#qe9c697c] TRIM関数は任意の文字列を削除することができます。 ** 引数指定なしでTRIMを実行する(前後のスペース削除) [#b45db69e] 引数を指定しないでtrimを実行すると前後のスペースを削除します。 trimdb=# SELECT '^' || TRIM(c1) || '$' from trimtbl; ?column? ---------- ^hello$ ^world$ (2 行) trim(文字列)は、以下のように書くこともできます。 select trim(both from カラム名) from テーブル名; 文字列を直に設定し実行することもできます。 trimdb=# SELECT '^' || TRIM(BOTH from ' SAKURA TSUBAKI ') || '$'; ?column? ------------------ ^SAKURA TSUBAKI$ (1 行) ** 引数指定を指定してみる [#t25b7bd2] 上記ではBOTHを指定しました。~ 以下では、LEADING, TRAILINGを使用した例を記します。 - LEADINGはLTRIMと同じ動作 trimdb=# SELECT '^' || TRIM(LEADING from ' SAKURA TSUBAKI ') || '$'; ?column? -------------------- ^SAKURA TSUBAKI $ (1 行) - TRAILINGはRTRIMと同じ動作 trimdb=# SELECT '^' || TRIM(TRAILING from ' SAKURA TSUBAKI ') || '$'; ?column? -------------------- ^ SAKURA TSUBAKI$ (1 行) ** 文字列を指定しトリミングする [#qc11d13f] BOTH, LEADING, TRAILINGを使用し文字列を指定してトリミングしてみる - BOTH BOTHの場合は指定した文字列(abc)を先頭と末尾から削除します。~ 以下の実行例はabcSAKURAabcがSAKURAになります。 trimdb=# SELECT TRIM(BOTH 'abc' from 'abcSAKURAabc'); btrim -------- SAKURA (1 行) - LEADING LEADINGの場合は指定した文字列(abc)を先頭(左側)から削除します。~ 以下の実行例はabcSAKURAabcがSAKURAabcになります。 trimdb=# SELECT TRIM(LEADING 'abc' from 'abcSAKURAabc'); ltrim ----------- SAKURAabc (1 行) - TRAILING TRAILINGの場合は指定した文字列(abc)を先頭(左側)から削除します。~ 以下の実行例はabcSAKURAabcがabcSAKURAになります。 trimdb=# SELECT TRIM(TRAILING 'abc' from 'abcSAKURAabc'); rtrim ----------- abcSAKURA (1 行) #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する