MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara Mendapatkan Beberapa Baris ke dalam Daftar yang Dipisahkan Koma di SQL

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memeriksa Koneksi ke MongoDB

  2. Membandingkan Kinerja MongoDB di Cloud Publik:AWS, Azure &DigitalOcean

  3. Menautkan &Membuat Gabungan MongoDB Menggunakan SQL:Bagian 2

  4. Bagaimana MongoDB menghindari kekacauan injeksi SQL?

  5. SQL RPAD()