Beberapa RDBMS memiliki GROUP_CONCAT()
fungsi yang memungkinkan Anda mengembalikan kolom kueri sebagai daftar yang dibatasi (misalnya, daftar yang dipisahkan koma). MySQL dan MariaDB adalah dua yang memiliki fungsi seperti itu.
PostgreSQL dan SQL Server memiliki fungsi serupa yang disebut STRING_AGG()
.
Oracle, di sisi lain, memiliki LISTAGG()
fungsi yang melakukan hal yang hampir sama (dan mungkin lebih).
Jadi bisa dibilang LISTAGG()
adalah GROUP_CONCAT()
Oracle setara.
Contoh
Berikut adalah contoh dasar untuk mendemonstrasikan bagaimana LISTAGG()
Oracle fungsi berfungsi:
SELECT LISTAGG(region_name, ',')
FROM regions;
Hasil:
LISTAGG(REGION_NAME,',') ______________________________________________ Europe,Americas,Asia,Middle East and Africa
Dalam hal ini, saya menetapkan bahwa pemisahnya adalah koma.
Inilah yang terjadi ketika kita hanya melakukan kueri tanpa LISTAGG()
fungsi:
SELECT region_name
FROM regions;
Hasil:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Kami mendapatkan empat baris, masing-masing dengan nilai terpisah, bukan satu baris yang dipisahkan koma yang berisi semua nilai.
LISTAGG()
fungsi juga memungkinkan kami untuk memesan hasil, hanya mengembalikan nilai unik (melalui DISTINCT
klausa), dan banyak lagi.
Lihat LISTAGG()
Fungsi di Oracle untuk lebih banyak contoh.