Di Postgres, kita dapat menggunakan STRING_AGG()
berfungsi untuk mengubah hasil kueri kami menjadi daftar yang dipisahkan koma.
Alih-alih setiap nilai dikeluarkan dalam baris terpisah (seperti halnya kueri biasa), nilai-nilai tersebut dikeluarkan ke satu baris, dipisahkan dengan koma (atau pembatas lain yang kita pilih).
Contoh
Bayangkan kita menjalankan kueri berikut:
SELECT *
FROM Genres;
Hasil:
+---------+---------+ | genreid | genre | +---------+---------+ | 1 | Rock | | 2 | Jazz | | 3 | Country | | 4 | Pop | | 5 | Blues | | 6 | Hip Hop | | 7 | Rap | | 8 | Punk | +---------+---------+ (8 rows)
Kita dapat menjalankan query berikut untuk menampilkan genre
kolom sebagai daftar yang dipisahkan koma:
SELECT STRING_AGG(genre, ', ')
FROM Genres;
Hasil:
+-----------------------------------------------------+ | string_agg | +-----------------------------------------------------+ | Rock, Jazz, Country, Pop, Blues, Hip Hop, Rap, Punk | +-----------------------------------------------------+ (1 row)
Kami bahkan dapat menyertakan GenreId
kolom dalam daftar kami jika kami ingin:
SELECT STRING_AGG(CONCAT(GenreId, ') ', Genre), ' ' ORDER BY GenreId ASC)
FROM Genres;
Hasil:
1) Rock 2) Jazz 3) Country 4) Pop 5) Blues 6) Hip Hop 7) Rap 8) Punk
Di sini, saya juga menggunakan ORDER BY
klausa dalam STRING_AGG()
fungsi untuk mengurutkan hasil berdasarkan GenreId
dalam urutan menaik.
Kami juga dapat melakukan hal-hal seperti, menghapus duplikat (dengan DISTINCT
klausa), gunakan pemisah yang berbeda, dan gunakan fungsi dalam kueri yang dikelompokkan.
Lihat STRING_AGG()
Fungsi di PostgreSQL sebagai contoh.