Postgresでは、STRING_AGG()
を使用できます クエリ結果をコンマ区切りのリストに変換する関数。
(通常のクエリのように)各値が別々の行に出力される代わりに、値はコンマ(または選択した他の区切り文字)で区切られた単一の行に出力されます。
例
次のクエリを実行するとします。
SELECT *
FROM Genres;
結果:
+---------+---------+ | genreid | genre | +---------+---------+ | 1 | Rock | | 2 | Jazz | | 3 | Country | | 4 | Pop | | 5 | Blues | | 6 | Hip Hop | | 7 | Rap | | 8 | Punk | +---------+---------+ (8 rows)
次のクエリを実行して、genre
を出力できます。 カンマ区切りのリストとしての列:
SELECT STRING_AGG(genre, ', ')
FROM Genres;
結果:
+-----------------------------------------------------+ | string_agg | +-----------------------------------------------------+ | Rock, Jazz, Country, Pop, Blues, Hip Hop, Rap, Punk | +-----------------------------------------------------+ (1 row)
GenreId
を含めることもできます 必要に応じてリストの列:
SELECT STRING_AGG(CONCAT(GenreId, ') ', Genre), ' ' ORDER BY GenreId ASC)
FROM Genres;
結果:
1) Rock 2) Jazz 3) Country 4) Pop 5) Blues 6) Hip Hop 7) Rap 8) Punk
ここでは、ORDER BY
も使用しました STRING_AGG()
内の句 GenreId
で結果を並べ替えるための関数 昇順。
また、重複を削除するなどのこともできます(DISTINCT
を使用) 句)、別の区切り文字を使用し、グループ化されたクエリ内で関数を使用します。
STRING_AGG()
を参照してください 例としてPostgreSQLの関数。