Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengagregat Medan Rentetan dalam Pelayan SQL Menggunakan Setara LISTAGG?
Soalan: Bagaimana cara mengagregat medan rentetan dengan cekap dalam pertanyaan SQL Server, serupa dengan fungsi LISTAGG dalam sistem pangkalan data lain?
Penyelesaian:
SQL Server menyediakan fungsi STRING_AGG
sebagai pengganti yang setara untuk fungsi LISTAGG. Sintaksnya adalah seperti berikut:
<code class="language-sql">STRING_AGG ( expression, separator ) WITHIN GROUP ( ORDER BY order_expression [ ASC | DESC ] )</code>
expression
: Ungkapan rentetan untuk diagregatkan. separator
: Aksara atau rentetan yang digunakan untuk memisahkan rentetan agregat. order_expression
: Ungkapan digunakan untuk mengisih rentetan agregat. ASC
bermaksud tertib menaik, DESC
bermaksud tertib menurun. Contoh:
Andaikan terdapat jadual bernama MyTable
yang mengandungi dua medan FieldA
dan FieldB
. Pertanyaan berikut menggunakan fungsi STRING_AGG
untuk mengagregatkan nilai dalam FieldB
ke dalam rentetan dipisahkan koma, dikumpulkan mengikut FieldA
:
<code class="language-sql">SELECT FieldA, STRING_AGG(FieldB, ',') WITHIN GROUP (ORDER BY FieldB) AS AggregatedFieldB FROM MyTable GROUP BY FieldA ORDER BY FieldA;</code>
Keputusan yang dijangkakan:
Pertanyaan ini akan mengembalikan hasil yang serupa dengan format berikut:
<code>FieldA | AggregatedFieldB -------|----------------- 1 | Value1, Value2, Value3 2 | Value4, Value5</code>
Ini menunjukkan bahawa fungsi STRING_AGG
berjaya menggabungkan nilai FieldA
dalam setiap kumpulan FieldB
ke dalam satu rentetan. Ambil perhatian bahawa nilai dalam rentetan yang terhasil disusun mengikut klausa ORDER BY FieldB
.
Dengan menggunakan fungsi STRING_AGG
, anda boleh melaksanakan pengagregatan medan rentetan dalam SQL Server dengan mudah, memudahkan pemprosesan data dan penjanaan laporan.
Atas ialah kandungan terperinci Bagaimana untuk Mengagregat Medan Rentetan dalam Pelayan SQL Menggunakan Setara LISTAGG?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!