PostgreSQLで複数行の検索結果を文字で結合して、1行として取得する方法
PostgreSQLで検索した結果が複数行になることはわかっていましたが、プログラムで処理する都合上、結果を1行として取得したくなりました。
以前方法を見た覚えがあったので、調べなおした結果、以下のようにしたらできました。
SELECT array_to_string((SELECT array_agg(col1) FROM table1 WHERE id = 45), ',') AS oneline;
array_aggで複数行の検索結果を配列に直して、array_to_stringで配列を結合して1行としています。
これを以前から知っていたら、プログラムでループして結合する手間が省けていました。
集約関数
配列関数と演算子