Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris Subkueri ke dalam Medan Terhad Tunggal dalam Pelayan SQL?

Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris Subkueri ke dalam Medan Terhad Tunggal dalam Pelayan SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-22 00:22:11
asal
571 orang telah melayarinya

How Can I Concatenate Multiple Subquery Rows into a Single Delimited Field in SQL Server?

Menggabungkan Hasil Subkueri dengan Cekap ke dalam Medan Terhad Tunggal dalam Pelayan SQL

SQL Server menawarkan beberapa kaedah untuk menggabungkan berbilang baris daripada subkueri ke dalam satu medan dengan pembatas. Walaupun kursor sebelah pelayan adalah pilihan, ia selalunya kurang cekap. Artikel ini meneroka teknik yang lebih berkesan.

UNTUK LALUAN XML: Penyelesaian untuk Versi Pelayan SQL Lama (2005 dan Ke Bawah)

Untuk SQL Server 2005 dan versi terdahulu, arahan FOR XML PATH menyediakan penyelesaian ringkas:

SELECT [VehicleID]
     , [Name]
     , (STUFF((SELECT CAST(', ' + [City] AS VARCHAR(MAX)) 
         FROM [Location] 
         WHERE (VehicleID = Vehicle.VehicleID) 
         FOR XML PATH ('')), 1, 2, '')) AS Locations
FROM [Vehicle]
Salin selepas log masuk

Ini dengan bijak menggunakan penjanaan laluan XML untuk menggabungkan nilai City, kemudian STUFF mengalih keluar koma awal.

STRING_AGG: Kaedah Pilihan untuk SQL Server 2017 dan Kemudian

SQL Server 2017 dan versi yang lebih baru memperkenalkan STRING_AGG, fungsi yang dipertingkatkan dengan ketara:

SELECT  [VehicleID]
       ,[Name]
       ,(SELECT STRING_AGG([City], ', ')
         FROM [Location]
         WHERE VehicleID = V.VehicleID) AS Locations
FROM   [Vehicle] V
Salin selepas log masuk

STRING_AGG menawarkan prestasi yang lebih baik dan membenarkan pembatas tersuai, menjadikannya pendekatan yang disyorkan untuk penggunaan SQL Server moden.

Ringkasan

Kaedah ini menyediakan cara yang cekap untuk menyatukan berbilang baris subkueri ke dalam rentetan terhad dalam SQL Server, memperkemas tugas manipulasi data. Memilih kaedah yang sesuai bergantung pada versi SQL Server anda; STRING_AGG ialah pilihan pilihan untuk versi yang lebih baharu kerana prestasi dan fleksibiliti yang dipertingkatkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Baris Subkueri ke dalam Medan Terhad Tunggal dalam Pelayan SQL?. 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