Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh menggabungkan data teks dari pelbagai baris di SQL Server?

Bagaimanakah saya boleh menggabungkan data teks dari pelbagai baris di SQL Server?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-25 17:57:10998semak imbas

How Can I Concatenate Text Data from Multiple Rows in SQL Server?

Menggabungkan Data Teks daripada Berbilang Baris Pelayan SQL: Panduan Komprehensif

Ramai pengguna SQL Server perlu menggabungkan data teks merentas berbilang baris menjadi satu rentetan. Ini tidak ternilai untuk penjanaan laporan, penggabungan data dan pengiraan berasaskan rentetan.

Bayangkan jadual dengan senarai nama:

<code>Peter
Paul
Mary</code>

Matlamatnya ialah untuk mencipta rentetan yang dipisahkan koma: Peter, Paul, Mary

Kaedah 1: Untuk SQL Server 2017 dan Kemudian (STRING_AGG)

SQL Server 2017 dan Pangkalan Data SQL Azure menawarkan fungsi STRING_AGG yang cekap:

<code class="language-sql">SELECT STRING_AGG(Name, ', ') AS ConcatenatedNames
FROM TableName;</code>

Kaedah 2: Penghuraian XML (Untuk Versi Pelayan SQL Lama)

Untuk versi SQL Server yang lebih awal, penghuraian XML menyediakan penyelesaian:

<code class="language-sql">SELECT
    LEFT(
        (
            SELECT Name + ',' AS [text()]
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)'),
        LEN((
            SELECT Name + ',' AS [text()]
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)')) - 1
    ) AS ConcatenatedNames
FROM TableName;</code>

Kaedah 3: Menggunakan Fungsi STUFF

Fungsi STUFF menawarkan pendekatan lain:

<code class="language-sql">SELECT
    STUFF(
        (
            SELECT ',' + Name
            FROM TableName
            ORDER BY Name
            FOR XML PATH('')
        ).value('.', 'nvarchar(max)'),
        1, 1, ''
    ) AS ConcatenatedNames
FROM TableName;</code>

Kaedah ini menggabungkan data teks dengan cekap daripada berbilang baris dalam SQL Server, memudahkan manipulasi dan pengagregatan data. Pilih kaedah yang sesuai untuk versi SQL Server anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggabungkan data teks dari pelbagai baris di SQL Server?. 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