PostgreSQLでカラムの文字列を連結する・ダブルパイプ †ダブルパイプ(||)を使うと文字列の連結を行うことができます。 関連記事・関連資料 †ダブルパイプ(||)の使用例を実施した環境 †本資料を実行するために使用した環境を以下に記します。
作成したテーブルと挿入したデータは以下の通りです。
ダブルパイプ(||)を使ってカラム内容を連結してみる †ダブルパイプ(||)を使ってカラム内容を連結してみます。 character varying(VARCHAR)のカラムで実施 †カラム名をダブルパイプ(||)で連結した時のSQLです。 sakura=# select c1||c2||c3 as concat from t1; concat ----------- abcdefghi jklmnopqr (2 行) integerのカラムで実施 †数値カラムで連結した例は以下の通りです。 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出力してみる †PostgreSQLでは、psqlのオプションである、-A, -Fなどを利用すれば簡単にcsv出力できますが、この資料ではダブルパイプをつかって出力してみます。 sakura=# select c1 ||','|| c2 ||','|| c3 from t1; ?column? ------------- abc,def,ghi jkl,mno,pqr (2 行) 実際にcsvファイルとして出力してみます。 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 以上、ダブルパイプ(||)の使用例でした。 |