Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengagregatkan Berbilang Baris menjadi Satu dalam Oracle SQL?
Oracle SQL: Menggabungkan berbilang baris data ke dalam satu baris
Apabila set data disusun mengikut lajur tertentu, mungkin perlu menggabungkan berbilang baris ke dalam satu baris. Ini boleh dicapai melalui operasi pengagregatan data SQL.
Dalam Oracle SQL, fungsi WM_CONCAT
menyediakan cara mudah untuk menyertai berbilang baris nilai. Walau bagaimanapun, perlu diperhatikan bahawa fungsi ini telah ditandakan sebagai tidak disokong dan dialih keluar dalam Oracle 12c dan lebih baru.
WM_CONCAT
Kaedah (sebelum Oracle 12c)
Sebelum Oracle 12c, anda boleh menggunakan WM_CONCAT
untuk mengagregat nilai:
<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field1;</code>
Alternatif: LISTAGG
(Oracle 12c dan lebih baru)
Untuk pangkalan data Oracle 12c atau lebih tinggi, LISTAGG
menyediakan alternatif kepada WM_CONCAT
. Fungsi ini menyediakan fungsi yang dipertingkatkan khusus untuk tugas pengagregatan rentetan:
<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2) FROM YourTable GROUP BY field1;</code>
Pelaksanaan tersuai
Jika tiada WM_CONCAT
mahupun LISTAGG
, anda boleh membuat pelaksanaan tersuai menggunakan gabungan subkueri dan fungsi manipulasi rentetan. Pautan berkaitan (contohnya, oracle-base.com) menyediakan arahan terperinci untuk kaedah ini.
Atas ialah kandungan terperinci Bagaimana untuk Mengagregatkan Berbilang Baris menjadi Satu dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!