Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan E-mel dengan ID Laporan Menggunakan SQL Server GROUP BY Klausa?
SQL Server: Menggabungkan E-mel dalam Kumpulan ID Laporan Menggunakan GROUP BY
Dalam SQL Server, mengumpulkan data dengan cekap dan menggabungkan nilai yang berkaitan ke dalam rentetan tunggal adalah tugas biasa. Fasal GROUP BY
mengumpulkan baris berdasarkan lajur yang ditentukan, membolehkan penggunaan fungsi agregat untuk manipulasi dan pengiraan data.
Menggabungkan E-mel mengikut ID Laporan
Bayangkan jadual berstruktur seperti ini:
<code>ID ReportId Email 1 1 [email protected] 2 2 [email protected] 3 1 [email protected] 4 3 [email protected] 5 3 [email protected]</code>
Matlamatnya adalah untuk mengumpulkan baris dengan ReportId
dan menggabungkan e-mel yang sepadan ke dalam rentetan yang dipisahkan koma. Output yang dikehendaki:
<code>ReportId Email 1 [email protected], [email protected] 2 [email protected] 3 [email protected], [email protected]</code>
Memanfaatkan Fungsi STUFF()
Ini dicapai dengan berkesan menggunakan fungsi STUFF()
dalam subkueri:
<code class="language-sql">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</code>
Penjelasan Terperinci:
ReportId
, menambahkan setiap e-mel dengan koma dan ruang.FOR XML PATH('')
menukar hasil subkueri kepada satu rentetan XML.STUFF()
mengalih keluar koma dan ruang utama daripada rentetan XML, menghasilkan senarai e-mel yang dipisahkan koma yang dikehendaki.Pertimbangan Lanjut:
SUM()
, AVG()
) boleh digunakan dengan GROUP BY
untuk pelbagai pengiraan pada data terkumpul.STUFF()
ialah fungsi yang sangat serba boleh untuk operasi manipulasi rentetan yang pelbagai.Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan E-mel dengan ID Laporan Menggunakan SQL Server GROUP BY Klausa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!