Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Berbilang Baris SQL ke dalam Medan Terhad Tunggal?

Bagaimana untuk Menggabungkan Berbilang Baris SQL ke dalam Medan Terhad Tunggal?

DDD
DDDasal
2025-01-22 00:27:09717semak imbas

How to Combine Multiple SQL Rows into a Single Delimited Field?

Fungsi Pelayan SQL: Menggabungkan Berbilang Baris SQL ke dalam Medan Terhad Tunggal

Menggabungkan berbilang baris dengan cekap daripada subkueri ke dalam medan tunggal yang dibatasi dalam SQL Server memerlukan pendekatan yang mantap. Artikel ini membentangkan dua teknik yang berkesan, sesuai untuk versi SQL Server yang berbeza.

UNTUK LALUAN XML (SQL Server 2005 dan lebih baru):

Kaedah ini, serasi dengan SQL Server 2005 dan versi berikutnya, memanfaatkan perintah FOR XML PATH untuk penggabungan rentetan. Berikut ialah contoh:

<code class="language-sql">SELECT [VehicleID], [Name], 
       (STUFF((SELECT CAST(', ' + [City] AS VARCHAR(MAX)) 
               FROM [Location] 
               WHERE (VehicleID = Vehicle.VehicleID) 
               FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '')) AS Locations
FROM [Vehicle]</code>

Pertanyaan ini menggunakan FOR XML PATH untuk membina rentetan nilai bandar yang dipisahkan koma untuk setiap VehicleID. Fungsi STUFF mengalih keluar koma di hadapan.

STRING_AGG (SQL Server 2017 dan kemudian):

Untuk SQL Server 2017 dan lebih baru, fungsi STRING_AGG menawarkan penyelesaian yang lebih bersih dan cekap:

<code class="language-sql">SELECT [VehicleID], [Name], 
       (SELECT STRING_AGG([City], ', ') 
        FROM [Location] 
        WHERE VehicleID = V.VehicleID) AS Locations
FROM [Vehicle] V</code>

STRING_AGG secara langsung menggabungkan nilai City dengan pemisah yang ditentukan (koma dan ruang dalam kes ini). Pendekatan ini biasanya lebih disukai kerana kebolehbacaan dan prestasinya yang dipertingkatkan.

Kedua-dua kaedah mengagregatkan data secara berkesan daripada berbilang baris ke dalam medan terhad tunggal, memudahkan manipulasi data dalam SQL Server. Pilih kaedah yang paling sesuai dengan versi SQL Server anda untuk hasil yang optimum.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Baris SQL ke dalam Medan Terhad 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