Penjelasan terperinci tentang pengagregatan senarai SQL Server
Dalam operasi pangkalan data hubungan, pengagregatan data ialah langkah utama dalam menyepadukan berbilang maklumat rekod ke dalam ringkasan yang bermakna. Pengagregatan senarai ialah satu kaedah pengagregatan sedemikian yang menggabungkan berbilang nilai ke dalam satu senarai yang dipisahkan.
SQL Server sendiri tidak secara langsung menyediakan fungsi LISTAGG seperti Oracle. Walau bagaimanapun, fungsi yang sama boleh dicapai melalui beberapa teknik.
Kaedah 1: STRING_AGG (SQL Server 2017 dan ke atas)
Untuk SQL Server 2017 dan lebih baru, fungsi STRING_AGG menyediakan penyelesaian yang kemas untuk pengagregatan senarai:
<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>
Kaedah 2: CTE Rekursif (SQL Server 2016 dan ke bawah)
Dalam versi SQL Server yang terdahulu, anda boleh menggunakan ungkapan jadual biasa (CTE) rekursif untuk melaksanakan pengagregatan senarai:
<code class="language-sql"> WITH CTE_TableName AS ( SELECT FieldA, FieldB FROM TableName) SELECT t0.FieldA , STUFF(( SELECT ',' + t1.FieldB FROM CTE_TableName t1 WHERE t1.FieldA = t0.FieldA ORDER BY t1.FieldB FOR XML PATH('')), 1, LEN(','), '') AS FieldBs FROM CTE_TableName t0 GROUP BY t0.FieldA ORDER BY FieldA;</code>
Keserasian dengan pangkalan data lain
Untuk sistem pangkalan data selain daripada SQL Server, alternatif berikut tersedia:
Ringkasan
Walaupun SQL Server tidak mempunyai fungsi LISTAGG asli, terdapat banyak cara untuk mencapai fungsi yang serupa. Bergantung pada versi SQL Server yang anda gunakan, kaedah ini menyediakan pilihan yang fleksibel untuk mengagregatkan data rentetan ke dalam senarai yang dibataskan.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengagregatan Senarai dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!