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

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

DDD
Lepaskan: 2025-01-23 15:06:09
asal
574 orang telah melayarinya

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

Menggabungkan Nilai Lajur daripada Berbilang Baris dalam Oracle: Penyelesaian Komprehensif

Oracle menyediakan keupayaan teguh untuk manipulasi data, termasuk keupayaan untuk menggabungkan lajur nilai daripada berbilang baris. Pertimbangkan contoh berikut, di mana kami menyasarkan untuk menggabungkan nilai "Desc" daripada jadual B untuk setiap nilai "PID" unik dalam jadual A.

Table A:

PID
A
B
C

Table B:

PID   SEQ    Desc
A     1      Have
A     2      a nice
A     3      day.
B     1      Nice Work.
C     1      Yes
C     2      we can
C     3      do
C     4      this work!
Salin selepas log masuk

Untuk mencapai output yang diingini, di mana lajur "Desc" dalam jadual output ialah gabungan nilai "Desc" daripada jadual B untuk setiap "PID", kita boleh menggunakan pertanyaan SQL berikut:

SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B GROUP BY pid;
Salin selepas log masuk

Ini pertanyaan memanfaatkan fungsi LISTAGG, yang mengagregatkan nilai daripada lajur tertentu ke dalam satu rentetan. Dengan menggunakan klausa GROUP BY, kami memastikan bahawa nilai dikumpulkan mengikut lajur "PID". Klausa ORDER BY selanjutnya menentukan tertib di mana nilai digabungkan (dalam kes ini, mengikut lajur "SEQ").

Untuk melengkapkan proses, kita boleh menyertai output pertanyaan ini dengan jadual A hingga tapis nilai "PID" seperti yang diperlukan:

SELECT A.PID, description
FROM A
INNER JOIN (
    SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
    FROM B GROUP BY pid
) AS B ON A.PID = B.pid;
Salin selepas log masuk

Output yang terhasil akan menyerupai berikut:

PID   Desc
A     Have a nice day.
B     Nice Work.
C     Yes we can do this work!
Salin selepas log masuk

Dengan pendekatan ini, kami menggabungkan nilai lajur secara berkesan daripada berbilang baris dalam Oracle, menyediakan alat yang berkuasa untuk transformasi dan manipulasi data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Nilai Lajur daripada Berbilang Baris 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan