Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengagregat Nilai Dipisahkan Koma Menggunakan SQL Server GROUP BY Klausa?

Bagaimana untuk Mengagregat Nilai Dipisahkan Koma Menggunakan SQL Server GROUP BY Klausa?

Linda Hamilton
Lepaskan: 2025-01-10 17:52:43
asal
724 orang telah melayarinya

How to Aggregate Comma-Separated Values Using SQL Server's GROUP BY Clause?

Menggunakan SQL Server GROUP BY untuk Menggabungkan Nilai Dipisahkan Koma

Klausa

SQL Server GROUP BY sangat berharga untuk mengagregat data berdasarkan atribut yang dikongsi. Walau bagaimanapun, menggabungkan berbilang nilai ke dalam rentetan yang dipisahkan koma memerlukan pendekatan yang lebih maju sedikit. Di sinilah fungsi STUFF terbukti berguna.

Begini cara anda boleh mencapai pengagregatan dipisahkan koma menggunakan GROUP BY dan STUFF:

SELECT ReportId, Email = 
    STUFF((SELECT ', ' + Email
           FROM your_table b 
           WHERE b.ReportId = a.ReportId 
          FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ReportId
Salin selepas log masuk

Mari kita rungkai pertanyaan ini:

  • Luar SELECT: Ini mendapatkan semula ReportId dan rentetan Email agregat.
  • Fungsi
  • STUFF: Ini menggabungkan e-mel dengan bijak, memasukkan koma dan ruang antara setiap e-mel.
  • Dalam SELECT: Subkueri ini mendapatkan semula semua e-mel yang dikaitkan dengan ReportId tertentu.
  • FOR XML PATH(''): Ini menukar set keputusan pertanyaan dalaman kepada rentetan XML, menyediakan format yang mudah untuk penggabungan.
  • WHERE klausa: Ini memastikan pertanyaan dalaman hanya memilih e-mel yang sepadan dengan ReportId daripada pertanyaan luar.

Menggunakan pertanyaan ini pada sampel data akan menghasilkan hasil berikut:

ReportId Email
1 [email protected], [email protected]
2 [email protected]
3 [email protected], [email protected]

Teknik ini dengan cekap menjana senarai dipisahkan koma, memudahkan pengendalian data agregat.

Atas ialah kandungan terperinci Bagaimana untuk Mengagregat Nilai Dipisahkan Koma Menggunakan SQL Server GROUP BY Klausa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan