Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Pengagregatan Senarai dalam SQL Server?

Bagaimana untuk Melakukan Pengagregatan Senarai dalam SQL Server?

DDD
Lepaskan: 2025-01-22 13:17:09
asal
630 orang telah melayarinya

How to Perform List Aggregation in SQL Server?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Keserasian dengan pangkalan data lain

Untuk sistem pangkalan data selain daripada SQL Server, alternatif berikut tersedia:

  • MySQL: GROUP_CONCAT
  • Oracle dan DB2: LISTAGG
  • PostgreSQL: STRING_AGG

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan