Mengagregatkan Berbilang Baris Pangkalan Data ke dalam Rentetan Dibataskan Koma Tunggal
Tugas pangkalan data selalunya memerlukan penyatuan berbilang baris menjadi satu senarai yang dipisahkan koma. Pangkalan data Oracle menyediakan penyelesaian yang cekap untuk ini menggunakan fungsi LISTAGG
atau WM_CONCAT
. Walaupun WM_CONCAT
ditamatkan, LISTAGG
(tersedia daripada Oracle 11.2 dan seterusnya) menawarkan fleksibiliti unggul dan merupakan pendekatan yang disyorkan. Kedua-dua fungsi mencapai hasil asas yang sama: menggabungkan baris menjadi rentetan yang dibataskan.
Pertimbangkan pertanyaan untuk mendapatkan semula nama negara:
<code class="language-sql">SELECT * FROM countries;</code>
Untuk menjana senarai nama ini yang dipisahkan koma, gunakan LISTAGG
:
<code class="language-sql">SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name) FROM countries;</code>
Ini mengembalikan satu baris yang mengandungi semua nama negara, dipisahkan dengan kemas dengan koma dan disusun mengikut abjad.
Untuk pangkalan data yang menyokong WM_CONCAT
yang telah ditamatkan, persamaannya ialah:
<code class="language-sql">SELECT WM_CONCAT(country_name) FROM countries;</code>
Walaupun kedua-duanya menghasilkan output yang serupa, LISTAGG
menawarkan kelebihan. Ia membenarkan penyesuaian pembatas dan menyediakan kawalan ke atas susunan nilai agregat. Rujuk dokumentasi pangkalan data anda untuk parameter fungsi LISTAGG
terperinci.
Atas ialah kandungan terperinci Bagaimanakah LISTAGG atau WM_CONCAT Boleh Menggabungkan Berbilang Baris Pangkalan Data ke dalam Senarai Dipisahkan Koma Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!