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!