Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Berbilang Baris SQL ke dalam Lajur Dibatasi Koma Tunggal?

Bagaimana untuk Menggabungkan Berbilang Baris SQL ke dalam Lajur Dibatasi Koma Tunggal?

Patricia Arquette
Patricia Arquetteasal
2025-01-21 06:51:12986semak imbas

How to Concatenate Multiple SQL Rows into a Single Comma-Delimited Column?

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!

Kenyataan:
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