Penyambungan nilai kumpulan SQL Server: tiada GROUP_CONCAT diperlukan
Dalam pengurusan pangkalan data, selalunya perlu untuk menggabungkan nilai daripada baris yang berbeza dalam kumpulan. Contohnya, dalam jadual, satu ID dikaitkan dengan berbilang nilai:
Id | Value |
---|---|
1 | 'A' |
1 | 'B' |
2 | 'C' |
Matlamatnya adalah untuk menukar data menjadi rentetan gabungan setiap ID dan nilai yang berkaitan dengannya:
Id | Value |
---|---|
1 | 'AB' |
2 | 'C' |
Mencapai ini dalam SQL Server mungkin kelihatan sukar kerana ia tidak mempunyai fungsi GROUP_CONCAT MySQL. Walau bagaimanapun, SQL Server boleh menyelesaikan masalah ini dengan mudah menggunakan fungsi agregat yang ditentukan pengguna (UDF).
Untuk mencipta UDF penggabungan rentetan yang sah, mari kita menganalisis penyelesaian yang disediakan dalam soalan pendua "Bagaimana untuk menggabungkan rentetan menggunakan GROUP BY dalam SQL Server?" Bahagian teras ialah fungsi agregat yang menerima dua parameter rentetan, menggabungkannya dan mengembalikan hasilnya. Dengan merangkum operasi ini dalam UDF, kami boleh menggunakannya dalam pertanyaan.
Berikut ialah coretan kod untuk mencipta UDF:
<code class="language-sql">CREATE FUNCTION [dbo].[StringConcat](@Val1 VARCHAR(MAX), @Val2 VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN RETURN COALESCE(@Val1 + @Val2, '') END;</code>
Kini kita boleh menggunakan UDF ini dalam pertanyaan mudah:
<code class="language-sql">SELECT Id, StringConcat(Value, '') AS Value FROM YourTable GROUP BY Id;</code>
Pelan pertanyaan akhir menunjukkan kecekapan pendekatan ini. Dengan bantuan fungsi agregat yang ditentukan pengguna, kami boleh menggabungkan nilai baris terkumpul dengan mudah, menyelesaikan cabaran pangkalan data dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Nilai Berkumpulan dalam SQL Server Tanpa GROUP_CONCAT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!