Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Berbilang Baris SQL ke dalam Lajur Dibatasi Koma Tunggal?
Teknik SQL untuk Menggabungkan Berbilang Baris menjadi Medan Terhad Koma Tunggal
Mengagregatkan berbilang baris data ke dalam satu lajur, dipisahkan dengan koma, merupakan keperluan yang kerap dalam manipulasi data. Panduan ini menunjukkan cara untuk mencapai penggabungan ini menggunakan SQL, memfokuskan pada Microsoft SQL Server 2005 dan lebih baru.
Berikut ialah penyelesaian SQL Server:
<code class="language-sql">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, '') AS ConcatenatedPersons FROM @Tickets t GROUP BY t.TicketID</code>
Pendekatan ini menggunakan fungsi STUFF
untuk mengalih keluar koma di hadapan dengan cekap daripada rentetan bercantum. Pertanyaan bersarang memanfaatkan FOR XML PATH
untuk mencipta senarai dipisahkan koma daripada nilai Person
individu yang dikaitkan dengan setiap TicketID
. Fungsi ISNULL
mengendalikan kes di mana tiada orang dikaitkan dengan ID tiket yang diberikan. Hasilnya ialah satu lajur (ConcatenatedPersons
) yang mengandungi senarai orang yang dipisahkan koma untuk setiap tiket. Kaedah ini menyediakan cara yang bersih dan cekap untuk mencapai gabungan yang dikehendaki dalam SQL Server. Sesuaikan teknik ini kepada nama jadual dan lajur khusus anda untuk hasil yang optimum.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Baris SQL ke dalam Lajur Dibatasi Koma Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!