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
Lepaskan: 2025-01-21 06:51:12
asal
1055 orang telah melayarinya

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:

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

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