Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menggabungkan rentetan dengan cekap dalam kumpulan dalam SQL Server?

Bagaimana untuk menggabungkan rentetan dengan cekap dalam kumpulan dalam SQL Server?

Susan Sarandon
Lepaskan: 2025-01-09 12:47:48
asal
123 orang telah melayarinya

How to Efficiently Concatenate Strings Within Groups in SQL Server?

Mengumpul dan Menggabungkan Rentetan dalam Pelayan SQL

SQL Server menawarkan beberapa cara untuk menggabungkan rentetan dalam kumpulan. Kaedah yang sangat cekap melibatkan penciptaan fungsi agregat yang ditentukan pengguna (UDAF). Pendekatan ini memudahkan proses dan meningkatkan prestasi berbanding teknik lain.

Membina UDAF:

Berikut ialah cara mencipta UDAF untuk penyambungan rentetan:

<code class="language-sql">CREATE FUNCTION [dbo].[GroupConcat] (@ValueList VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
    DECLARE @Result VARCHAR(MAX) = '';
    WHILE LEN(@ValueList) > 0
    BEGIN
        SELECT TOP 1 @Value = Value, @ValueList = SUBSTRING(@ValueList, LEN(@Value) + 1, LEN(@ValueList))
        FROM STRING_SPLIT(@ValueList, ',')  -- Assumes comma-separated input
        WHERE @Value <> '';
        SET @Result = @Result + @Value;
    END
    RETURN @Result;
END;</code>
Salin selepas log masuk

Memakai UDAF:

Fungsi GroupConcat boleh digunakan terus dalam pertanyaan SQL anda:

<code class="language-sql">SELECT Id, [dbo].[GroupConcat](Value) AS ConcatenatedValue
FROM YourTable
GROUP BY Id;</code>
Salin selepas log masuk

Ini mengandaikan data anda berstruktur dengan lajur Id yang mewakili kumpulan dan lajur Value yang mengandungi rentetan untuk digabungkan. Fungsi STRING_SPLIT (tersedia dalam SQL Server 2016 dan lebih baru) digunakan untuk mengendalikan senarai nilai yang dipisahkan koma dengan cekap. Jika data anda tidak dipisahkan koma, laraskan STRING_SPLIT dengan sewajarnya, atau gunakan pendekatan lain untuk membelah rentetan.

Contoh Ilustrasi:

Memandangkan data sampel, pertanyaan akan menghasilkan:

<code>+----+-----------------+
| Id | ConcatenatedValue |
+----+-----------------+
| 1  | AB               |
| 2  | C                |
+----+-----------------+</code>
Salin selepas log masuk

UDAF ini menyediakan penyelesaian yang diperkemas dan berkesan untuk menggabungkan rentetan dalam kumpulan dalam SQL Server, meningkatkan kecekapan manipulasi data dengan ketara. Ingat untuk menggantikan YourTable dengan nama sebenar jadual anda.

Atas ialah kandungan terperinci Bagaimana untuk menggabungkan rentetan dengan cekap dalam kumpulan dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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