Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan Berbilang Baris ke dalam Senarai Terhad Koma dalam Oracle?

Bagaimana untuk Menggabungkan Berbilang Baris ke dalam Senarai Terhad Koma dalam Oracle?

Barbara Streisand
Lepaskan: 2025-01-19 17:51:10
asal
898 orang telah melayarinya

How to Combine Multiple Rows into a Comma-Delimited List in 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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan