PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Mengembalikan Hasil Kueri sebagai Daftar Dipisahkan Koma di PostgreSQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan tabel dinamis dengan kolom yang tidak diketahui dari fungsi PL/pgSQL

  2. PostgreSQL GROUP_CONCAT() Setara

  3. Cara membuat database PostgreSQL

  4. Tabel sebagai argumen dari fungsi PostgreSQL

  5. Mendapatkan daftar tanggal dalam rentang di PostgreSQL