Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Berbilang Baris ke dalam Senarai Terhad Koma dalam Oracle?
Mengagregatkan Baris ke dalam Senarai Dibataskan Koma dalam Oracle
Oracle menawarkan beberapa fungsi untuk menyatukan berbilang baris menjadi satu rentetan dengan nilai dipisahkan koma. Ini adalah tugas biasa untuk pengagregatan data dan penjanaan laporan. Fungsi yang paling menonjol ialah WM_CONCAT
dan LISTAGG
.
Menggunakan WM_CONCAT
Tersedia dalam versi Oracle sebelum 11.2, WM_CONCAT
menggabungkan nilai daripada berbilang baris menggunakan pembatas yang ditentukan. Contohnya, untuk menjana senarai nama jadual yang dipisahkan koma dalam skema:
<code class="language-sql">SELECT WM_CONCAT(table_name) FROM user_tables;</code>
Mempekerjakan LISTAGG
Diperkenalkan dalam Oracle 11.2, LISTAGG
menyediakan keupayaan yang dipertingkatkan berbanding WM_CONCAT
. Ia membolehkan kawalan yang lebih besar, termasuk menentukan pembatas dan mengendalikan nilai NULL. Contoh berikut mencipta senarai nama jadual yang dipisahkan koma, meninggalkan entri NULL:
<code class="language-sql">SELECT LISTAGG(table_name, ', ') WITHIN GROUP (ORDER BY table_name) FROM user_tables;</code>
Aplikasi Praktikal
Bayangkan pertanyaan mendapatkan semula beberapa rekod kewarganegaraan untuk setiap individu. Untuk mengelakkan penyertaan berlebihan, LISTAGG
boleh digunakan sebagai subkueri untuk menjana satu senarai kewarganegaraan yang dipisahkan koma bagi setiap orang:
<code class="language-sql">SELECT person_id, (SELECT LISTAGG(citizenship, ', ') WITHIN GROUP (ORDER BY citizenship) FROM citizenship WHERE person_id = t.person_id) AS citizenship_list FROM person t;</code>
Ini mengembalikan satu baris bagi setiap orang, dengan rentetan dipisahkan koma bagi kewarganegaraan mereka dalam lajur citizenship_list
.
Ringkasan
WM_CONCAT
dan LISTAGG
menyediakan cara yang mantap dan serba boleh untuk mengagregatkan berbilang baris ke dalam senarai yang dipisahkan koma dalam Oracle. Fungsi ini menyelaraskan manipulasi data dan meningkatkan kejelasan pertanyaan SQL.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Baris ke dalam Senarai Terhad Koma dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!