Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggabungkan Nilai Lajur daripada Berbilang Baris dalam Oracle SQL Menggunakan LISTAGG?

Bagaimanakah Saya Boleh Menggabungkan Nilai Lajur daripada Berbilang Baris dalam Oracle SQL Menggunakan LISTAGG?

Patricia Arquette
Lepaskan: 2025-01-23 15:11:12
asal
148 orang telah melayarinya

How Can I Concatenate Column Values from Multiple Rows in Oracle SQL Using LISTAGG?

Oracle SQL: Menggabungkan Nilai Lajur Merentas Berbilang Baris dengan LISTAGG

Oracle menyediakan beberapa cara untuk menggabungkan data daripada berbilang baris ke dalam satu rentetan. Fungsi LISTAGG ialah kaedah yang amat berkesan.

Bayangkan anda mempunyai dua jadual: Jadual A (dengan lajur PID yang mengandungi nilai A, B, C) dan Jadual B (dengan lajur PID, SEQ dan Desc). Objektifnya adalah untuk menggabungkan nilai Desc daripada Jadual B, dikumpulkan mengikut PID dan disusun mengikut SEQ, ke dalam satu lajur Description dalam set hasil.

Berikut ialah cara untuk melakukannya menggunakan LISTAGG:

<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B
GROUP BY pid;</code>
Salin selepas log masuk

Pertanyaan ini menggunakan LISTAGG untuk mengagregatkan nilai Desc bagi setiap PID unik, menyusunnya mengikut lajur SEQ dan menggunakan ruang (' ') sebagai pembatas. Output akan menunjukkan setiap PID dengan nilai Desc yang berpadanan dalam lajur description.

Untuk memasukkan hanya PIDyang hadir dalam Jadual A, cuma sertai pertanyaan ini dengan Jadual A:

<code class="language-sql">SELECT a.pid, LISTAGG(b.Desc, ' ') WITHIN GROUP (ORDER BY b.seq) AS description
FROM A a
JOIN B b ON a.pid = b.pid
GROUP BY a.pid;</code>
Salin selepas log masuk

Pertimbangan Penting: LISTAGG biasanya berfungsi dengan betul dengan VARCHAR2 jenis data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Nilai Lajur daripada Berbilang Baris dalam Oracle SQL Menggunakan LISTAGG?. 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