- 取得結果行を1列に連結するには、PostgreSQLでは、
string_agg関数
を利用することで可能です。 - v9以降のバージョンで利用可能です。
- 取得結果行を1列に連結して取得します。
目次
使い方
SQL
select string_agg(dat, '/' order by dat desc) from ( select 'a' as dat union select 'b' as dat union select 'c' as dat ) as dat_table
SQL中に登場しているサブクエリ(別名としてdat_table
を付けてある)
dat |
---|
a |
b |
c |
取得結果
a/b/c
string_agg
の第一引数
にて、集約する列名を指定します。string_agg
の第二引数
にて、結合する時に使う文字列を指定します(例:'/')- その後ろにオプションを指定します(例:order by)。
順番を指定したい場合
string_agg
の中でorder by
を使ってデータの並び順を指定します。
SQL
select string_agg(dat, '/' order by dat desc) from ( select 'a' as dat union select 'b' as dat union select 'c' as dat ) as dat_table
取得結果
c/b/a