Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengagregatkan Rentetan dalam Pelayan SQL Seperti LISTAGG Oracle?
Senarai Pengagregatan dalam Pelayan SQL
SQL Server menyediakan satu set fungsi yang berkuasa untuk pengagregatan data, termasuk keupayaan untuk menggabungkan nilai daripada berbilang baris ke dalam satu rentetan yang dipisahkan koma. Menguasai kaedah pengagregatan ini adalah penting untuk pelbagai tugas pengagregatan dan pembentangan data.
Untuk mencapai fungsi yang sama seperti fungsi LISTAGG Oracle dalam SQL Server, anda boleh menggunakan fungsi STRING_AGG. Diperkenalkan dalam SQL Server 2017, fungsi ini membenarkan rentetan penggabungan dalam kumpulan.
Contoh
Pertimbangkan set data berikut:
字段 A | 字段 B |
---|---|
1 | A |
1 | B |
2 | A |
Pertanyaan:
<code class="language-sql">SELECT FieldA, STRING_AGG(FieldB, ',') WITHIN GROUP (ORDER BY FieldB) AS FieldBs FROM TableName GROUP BY FieldA ORDER BY FieldA;</code>
Keputusan:
字段 A | FieldBs |
---|---|
1 | A, B |
2 | A |
Fungsi STRING_AGG dengan klausa WITHIN GROUP memastikan bahawa nilai digabungkan dalam setiap kumpulan yang dikumpulkan mengikut FieldA. Klausa ORDER BY dalam agregat menentukan susunan nilai yang perlu disenaraikan.
Untuk versi SQL Server sebelum 2017, anda boleh menggunakan gabungan CTE (ungkapan jadual biasa) dan fungsi STUFF untuk mencapai hasil yang sama. Walau bagaimanapun, untuk kesederhanaan dan keserasian dengan versi yang lebih baharu, fungsi STRING_AGG ialah penyelesaian yang disyorkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengagregatkan Rentetan dalam Pelayan SQL Seperti LISTAGG Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!