Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Nilai Berkumpulan dalam SQL Server 2005?
Andaikan anda mempunyai jadual yang mengandungi berbilang nilai yang dikaitkan dengan pengecam unik, contohnya:
<code>+------------+ | Id | Value | +------------+ | 1 | 'A' | |------------| | 1 | 'B' | |------------| | 2 | 'C' | +------------+</code>
Untuk mencapai hasil yang diingini untuk menggabungkan baris dengan Id yang sama ke dalam satu baris dengan nilai gabungan:
<code>+------------+ | Id | Value | +------------+ | 1 | 'AB' | |------------| | 2 | 'C' | +------------+</code>
Dalam SQL Server 2005, adalah mungkin untuk menggunakan fungsi agregat yang ditentukan pengguna. Fungsi ini disediakan dalam pelaksanaan sampelnya untuk melaksanakan tugas penggabungan ini dengan lancar.
<code class="language-sql">-- 创建用户定义的聚合函数 CREATE FUNCTION [dbo].[ConcatValues](@array VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @result VARCHAR(MAX) = ''; IF @array IS NOT NULL BEGIN SELECT @result = @result + value FROM STRING_SPLIT(@array, ','); END RETURN @result; END; -- 在查询中使用用户定义的聚合函数 SELECT Id, [dbo].[ConcatValues](STRING_AGG(Value, ',')) AS Value FROM TableName GROUP BY Id;</code>
Dengan penyelesaian ini, anda boleh memanfaatkan fungsi agregat yang ditentukan pengguna sama seperti fungsi agregat standard yang lain, membolehkan anda memasukkannya dengan lancar ke dalam pertanyaan anda. Ambil perhatian bahawa fungsi STRING_SPLIT
tersedia dalam SQL Server 2016 dan lebih baru. Untuk SQL Server 2005, anda perlu menggunakan kaedah alternatif untuk memisahkan rentetan, seperti fungsi tersuai atau kursor. Kod di atas telah dikemas kini untuk menggunakan fungsi STRING_AGG
(SQL Server 2017 dan lebih baru), memberikan penyelesaian yang lebih jelas. Untuk SQL Server 2005, anda memerlukan penyelesaian tersuai yang lebih kompleks untuk meniru kefungsian STRING_AGG
dan STRING_SPLIT
.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Nilai Berkumpulan dalam SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!