Gabungkan berbilang baris ke dalam satu lajur nilai dipisahkan koma dalam SQL Server
Soalan:
Anda perlu menggabungkan berbilang baris dengan pengecam biasa ke dalam satu lajur, di mana nilai dipisahkan dengan koma. Contohnya, anda ingin mendapatkan data daripada:
<code>[TicketID] [Person] T0001 Alice T0001 Bob T0002 Catherine T0002 Doug T0003 Elaine</code>
Tukar kepada:
<code>[TicketID] [People] T0001 Alice, Bob T0002 Catherine, Doug T0003 Elaine</code>
Penyelesaian untuk SQL Server 2005:
STUFF(ISNULL((SELECT ', ' + x.Person FROM @Tickets x WHERE x.TicketID = t.TicketID GROUP BY x.Person FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '')
Contoh pertanyaan:
SELECT t.TicketID, STUFF(ISNULL((SELECT ', ' + x.Person FROM @Tickets x WHERE x.TicketID = t.TicketID GROUP BY x.Person FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') [无前导逗号], ISNULL((SELECT ', ' + x.Person FROM @Tickets x WHERE x.TicketID = t.TicketID GROUP BY x.Person FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), '') [如果非空则有前导逗号] FROM @Tickets t GROUP BY t.TicketID
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Baris Pelayan SQL ke dalam Lajur Dibatasi Koma Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!