Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan E-mel oleh ReportId Menggunakan SQL Server GROUP BY dan STUFF()?

Bagaimana untuk Menggabungkan E-mel oleh ReportId Menggunakan SQL Server GROUP BY dan STUFF()?

Barbara Streisand
Lepaskan: 2025-01-10 17:38:41
asal
969 orang telah melayarinya

How to Concatenate Emails by ReportId Using SQL Server's GROUP BY and STUFF()?

Mengagregatkan E-mel dalam Pelayan SQL: Penyelesaian KUMPULAN OLEH dan STUFF()

Klausa

SQL Server GROUP BY berkuasa untuk meringkaskan data. Tugas yang kerap adalah menggabungkan nilai berbilang baris ke dalam satu rentetan, selalunya dipisahkan koma. Ini dikendalikan dengan cekap menggunakan fungsi seperti STUFF().

Mari kita ilustrasikan dengan contoh jadual laporan pekerja:

ID ReportId Email
1 1 john@example.com
2 2 mary@example.com
3 1 jane@example.com
4 3 david@example.com
5 3 susan@example.com

Untuk menggabungkan e-mel yang dikaitkan dengan setiap ReportId, menggunakan koma sebagai pemisah, pertanyaan ini berfungsi:

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

Fungsi STUFF() mengubah suai rentetan. Ia memerlukan empat argumen: rentetan, kedudukan permulaan, bilangan aksara untuk dialih keluar dan rentetan gantian.

Kumpulan pertanyaan luar oleh ReportId. Pertanyaan dalaman, menggunakan FOR XML PATH(''), menggabungkan e-mel untuk setiap kumpulan. STUFF() kemudian mengalih keluar koma dan ruang di hadapan.

Keluaran pertanyaan:

ReportId Email
1 john@example.com, jane@example.com
2 mary@example.com
3 david@example.com, susan@example.com

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan E-mel oleh ReportId Menggunakan SQL Server GROUP BY dan STUFF()?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan