PostgreSQL/PostgreSQLでカラムの文字列を連結する・ダブルパイプ
の編集
Top
/
PostgreSQL
/
PostgreSQLでカラムの文字列を連結する・ダブルパイプ
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * PostgreSQLでカラムの文字列を連結する・ダブルパイプ [#j57fdd2a] ダブルパイプ(||)を使うと文字列の連結を行うことができます。~ 以下にダブルパイプ(||)の使用例を記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連記事・関連資料 [#zf8415ce] -[[MySQLでダブルパイプを使用して文字連結をする方法>MySQL/MySQLでダブルパイプを使用して文字連結をする方法]] * ダブルパイプ(||)の使用例を実施した環境 [#z3a0c6d4] 本資料を実行するために使用した環境を以下に記します。 - OS : CentOS6 - PostgreSQL 8.4.13 作成したテーブルと挿入したデータは以下の通りです。 -t1テーブル sakura=# create table t1 (c1 varchar(10), c2 varchar(10), c3 varchar(10)); CREATE TABLE sakura=# insert into t1 values('abc', 'def', 'ghi'),('jkl','mno','pqr'); INSERT 0 2 sakura=# select * from t1; c1 | c2 | c3 -----+-----+----- abc | def | ghi jkl | mno | pqr (2 行) -t2テーブル sakura=# create table t2 (n1 int, n2 int, n3 int); CREATE TABLE sakura=# insert into t2 values(1,2,3),(4,5,6); INSERT 0 2 sakura=# select * from t2; n1 | n2 | n3 ----+----+---- 1 | 2 | 3 4 | 5 | 6 (2 行) * ダブルパイプ(||)を使ってカラム内容を連結してみる [#o9a163c1] ダブルパイプ(||)を使ってカラム内容を連結してみます。 ** character varying(VARCHAR)のカラムで実施 [#w360625d] カラム名をダブルパイプ(||)で連結した時のSQLです。~ c1,c2,c3のカラム内容が連結されているのが確認できます。 sakura=# select c1||c2||c3 as concat from t1; concat ----------- abcdefghi jklmnopqr (2 行) * integerのカラムで実施 [#v3c9c880] 数値カラムで連結した例は以下の通りです。~ to_charにより文字列に変換し、桁あわせで発生した余分なスペースをtrimで削除しています。 sakura=# select trim(to_char(n1,'9'))||trim(to_char(n2,'9'))||trim(to_char(n3,'9')) as concat from t2; concat -------- 123 456 (2 行) * ダブルパイプを使ってcsv出力してみる [#u27d5442] PostgreSQLでは、psqlのオプションである、-A, -Fなどを利用すれば簡単にcsv出力できますが、この資料ではダブルパイプをつかって出力してみます。~ ダブルパイプでカラム間にカンマが表示されるようにします。~ 以下、実行結果です。 sakura=# select c1 ||','|| c2 ||','|| c3 from t1; ?column? ------------- abc,def,ghi jkl,mno,pqr (2 行) 実際にcsvファイルとして出力してみます。~ psqlで\t onを指定しタプルのみの表示としています。~ また、\oでファイルに出力するようになります。 sakura=# \t on タプルのみを表示しています。 sakura=# \o concat.csv sakura=# select c1 ||','|| c2 ||','|| c3 from t1; sakura=# catコマンドで作成したファイルを確認するとカンマ区切りのcsvファイルが作成されています。 $ cat concat.csv abc,def,ghi jkl,mno,pqr psqlで指定した\t, \oをもとに戻す場合は以下の操作を行います。 sakura=# \t off 「タプルのみ表示」は off です。 sakura=# \o 以上、ダブルパイプ(||)の使用例でした。 #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * PostgreSQLでカラムの文字列を連結する・ダブルパイプ [#j57fdd2a] ダブルパイプ(||)を使うと文字列の連結を行うことができます。~ 以下にダブルパイプ(||)の使用例を記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連記事・関連資料 [#zf8415ce] -[[MySQLでダブルパイプを使用して文字連結をする方法>MySQL/MySQLでダブルパイプを使用して文字連結をする方法]] * ダブルパイプ(||)の使用例を実施した環境 [#z3a0c6d4] 本資料を実行するために使用した環境を以下に記します。 - OS : CentOS6 - PostgreSQL 8.4.13 作成したテーブルと挿入したデータは以下の通りです。 -t1テーブル sakura=# create table t1 (c1 varchar(10), c2 varchar(10), c3 varchar(10)); CREATE TABLE sakura=# insert into t1 values('abc', 'def', 'ghi'),('jkl','mno','pqr'); INSERT 0 2 sakura=# select * from t1; c1 | c2 | c3 -----+-----+----- abc | def | ghi jkl | mno | pqr (2 行) -t2テーブル sakura=# create table t2 (n1 int, n2 int, n3 int); CREATE TABLE sakura=# insert into t2 values(1,2,3),(4,5,6); INSERT 0 2 sakura=# select * from t2; n1 | n2 | n3 ----+----+---- 1 | 2 | 3 4 | 5 | 6 (2 行) * ダブルパイプ(||)を使ってカラム内容を連結してみる [#o9a163c1] ダブルパイプ(||)を使ってカラム内容を連結してみます。 ** character varying(VARCHAR)のカラムで実施 [#w360625d] カラム名をダブルパイプ(||)で連結した時のSQLです。~ c1,c2,c3のカラム内容が連結されているのが確認できます。 sakura=# select c1||c2||c3 as concat from t1; concat ----------- abcdefghi jklmnopqr (2 行) * integerのカラムで実施 [#v3c9c880] 数値カラムで連結した例は以下の通りです。~ to_charにより文字列に変換し、桁あわせで発生した余分なスペースをtrimで削除しています。 sakura=# select trim(to_char(n1,'9'))||trim(to_char(n2,'9'))||trim(to_char(n3,'9')) as concat from t2; concat -------- 123 456 (2 行) * ダブルパイプを使ってcsv出力してみる [#u27d5442] PostgreSQLでは、psqlのオプションである、-A, -Fなどを利用すれば簡単にcsv出力できますが、この資料ではダブルパイプをつかって出力してみます。~ ダブルパイプでカラム間にカンマが表示されるようにします。~ 以下、実行結果です。 sakura=# select c1 ||','|| c2 ||','|| c3 from t1; ?column? ------------- abc,def,ghi jkl,mno,pqr (2 行) 実際にcsvファイルとして出力してみます。~ psqlで\t onを指定しタプルのみの表示としています。~ また、\oでファイルに出力するようになります。 sakura=# \t on タプルのみを表示しています。 sakura=# \o concat.csv sakura=# select c1 ||','|| c2 ||','|| c3 from t1; sakura=# catコマンドで作成したファイルを確認するとカンマ区切りのcsvファイルが作成されています。 $ cat concat.csv abc,def,ghi jkl,mno,pqr psqlで指定した\t, \oをもとに戻す場合は以下の操作を行います。 sakura=# \t off 「タプルのみ表示」は off です。 sakura=# \o 以上、ダブルパイプ(||)の使用例でした。 #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する