Think Twice
IT技術メモ | PostgreSQLのメモ
Created: 2022-10-15 / Updated: 2022-10-15

PostgreSQLで取得結果行を1列に連結するSQL(string_agg)


目次


使い方

SQL
Copy
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

取得結果
Copy
a/b/c

順番を指定したい場合

string_aggの中でorder byを使ってデータの並び順を指定します。

SQL
Copy
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
取得結果
Copy
c/b/a

参考

関連メモ

参考サイト