Di Oracle, kita dapat menggunakan LISTAGG()
berfungsi untuk mengonversi hasil kueri kami ke daftar yang dipisahkan koma.
Jadi, alih-alih setiap nilai di-output dalam baris terpisah, semua nilai di-output dalam satu baris, dipisahkan dengan koma (atau pembatas lain yang kita pilih).
Contoh
Bayangkan kita menjalankan kueri berikut:
SELECT last_name
FROM employees
WHERE job_id = 'IT_PROG';
Hasil:
LAST_NAME ____________ Hunold Ernst Austin Pataballa Lorentz
Kueri itu mengembalikan lima baris, masing-masing dengan nilai yang berbeda.
Jika kita ingin nilai tersebut menjadi output pada satu baris, kita dapat melakukan hal berikut:
SELECT LISTAGG(last_name, ', ')
FROM employees
WHERE job_id = 'IT_PROG';
Hasil:
LISTAGG(LAST_NAME,',') ____________________________________________ Hunold, Ernst, Austin, Pataballa, Lorentz
Yang kami lakukan hanyalah meneruskan nama kolom ke LISTAGG()
fungsi, serta pembatas yang kami pilih.
Kita bisa menggunakan pembatas yang berbeda atau kita bisa menghilangkan argumen itu sama sekali sehingga semua item digabungkan.
Fungsi ini juga menerima DISTINCT
klausa (untuk menghapus nilai duplikat), dan ORDER BY
klausa (untuk memesan output dari fungsi).
Fungsi ini juga bisa sangat berguna saat mengelompokkan hasil kueri.
Lihat LISTAGG()
Fungsi di Oracle untuk lebih banyak contoh.