Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggabungkan Nilai Lajur daripada Berbilang Baris dalam 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!
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;
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;
Output yang terhasil akan menyerupai berikut:
PID Desc A Have a nice day. B Nice Work. C Yes we can do this work!
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!