Sebagian besar RDBMS utama memiliki fungsi yang memungkinkan kami mengembalikan hasil kueri sebagai daftar yang dipisahkan koma.
Artinya, kita dapat menggunakan fungsi tersebut untuk mengonversi setiap baris menjadi item daftar terpisah, dalam daftar yang dipisahkan koma.
Berikut adalah contoh cara mencapainya di beberapa RDBMS yang lebih populer.
MySQL
MySQL memiliki GROUP_CONCAT()
fungsi yang memungkinkan kami untuk menampilkan hasil kueri kami dalam daftar yang dipisahkan koma:
SELECT GROUP_CONCAT(PetName)
FROM Pets;
Hasil:
Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
Kami juga dapat melakukan hal-hal seperti, menghapus nilai duplikat (dengan DISTINCT
klausa), tentukan urutan hasil (dengan ORDER BY
klausa), dan tentukan pembatas yang berbeda.
Lihat GROUP_CONCAT()
Fungsi di MySQL untuk contoh lainnya.
Database Oracle
Oracle Database memiliki LISTAGG()
fungsi:
SELECT LISTAGG(last_name, ', ')
FROM employees
WHERE job_id = 'IT_PROG';
Hasil:
Hunold, Ernst, Austin, Pataballa, Lorentz
Seperti MySQL, Oracle Database juga memungkinkan kita untuk menghapus nilai duplikat, menentukan urutan hasil, menentukan pemisah yang berbeda, dll.
Lihat LISTAGG()
Fungsi di Oracle untuk lebih banyak contoh.
SQL Server
SQL Server memiliki STRING_AGG()
fungsi untuk mengembalikan hasil kami dalam daftar yang dipisahkan koma:
SELECT STRING_AGG(Genre, ',') AS Result FROM Genres
Hasil:
Rock,Jazz,Country,Pop,Blues,Hip Hop,Rap,Punk
Kami juga dapat menghapus nilai duplikat, menentukan urutan hasil, mengubah pembatas, dll.
Lihat Cara Mengembalikan Hasil Kueri sebagai Daftar Dipisahkan Koma di SQL Server untuk contoh lainnya.
MariaDB
Seperti MySQL, MariaDB juga memiliki GROUP_CONCAT()
fungsi:
SELECT GROUP_CONCAT(PetName)
FROM Pets;
Hasil:
Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
Seperti fungsi MySQL dengan nama yang sama, kita juga dapat melakukan hal-hal seperti, menghapus nilai duplikat (dengan DISTINCT
klausa), tentukan urutan hasil (dengan ORDER BY
klausa), ubah pemisah, dll.
Namun, satu hal yang dimiliki MariaDB dibandingkan MySQL adalah LIMIT
klausa, yang memberi kami kemampuan untuk membatasi jumlah hasil dalam daftar.
Lihat MariaDB GROUP_CONCAT()
untuk lebih banyak contoh.
PostgreSQL
Postgres memiliki STRING_AGG()
fungsi:
SELECT STRING_AGG(PetName, ',')
FROM Pets;
Hasil:
Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
Kami juga dapat menghapus nilai duplikat (dengan DISTINCT
klausa), tentukan urutan hasil (dengan ORDER BY
klausa), mengubah pemisah, dll.
Lihat STRING_AGG()
Fungsi di PostgreSQL untuk lebih banyak contoh.
SQLite
Dalam SQLite, kita dapat menggunakan GROUP_CONCAT()
fungsi untuk mengubah hasil kueri kami menjadi daftar yang dipisahkan koma:
SELECT group_concat(FirstName)
FROM Employee;
Hasil:
Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura
Lihat Bagaimana GROUP_CONCAT()
Bekerja di SQLite untuk lebih banyak contoh.
Beberapa Kolom
Semua contoh di atas menggunakan satu kolom untuk daftar. Kami juga dapat menggabungkan beberapa kolom untuk menghasilkan daftar yang mencakup beberapa kolom.
Misalkan kita memiliki tabel dengan data berikut:
SELECT TaskId, TaskName
FROM Tasks;
Hasil:
TaskId TaskName ------ ------------ 1 Feed cats 2 Water dog 3 Feed garden 4 Paint carpet 5 Clean roof 6 Feed cats
Di SQL Server kita dapat melakukan hal berikut untuk menampilkan kedua kolom dalam satu baris:
SELECT STRING_AGG(CONCAT(TaskId, ') ', TaskName), ' ')
FROM Tasks
Hasil:
1) Feed cats 2) Water dog 3) Feed garden 4) Paint carpet 5) Clean roof 6) Feed cats