Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mensimulasikan fungsi MySQL's Group_concat dalam SQL Server 2005?
Dalam proses memindahkan aplikasi berasaskan MySQL ke Microsoft SQL Server 2005, fungsi fungsi Group_Concat MySQL perlu disalin. Fungsi ini menggabungkan multi -line dalam pertanyaan kumpulan ke dalam satu rentetan koma tunggal.
Penyelesaian:
Walaupun pelayan SQL tidak mempunyai setara dengan fungsi kumpulan_concat, ia boleh menggunakan gabungan pelbagai teknologi untuk mensimulasikan fungsinya:
Gunakan sambungan XML:satu kaedah adalah untuk menyambungkan rentetan dengan XML, dan kemudian ekstrak hasilnya:
Gunakan SQL Dinamik:
Kaedah lain adalah untuk menghasilkan pertanyaan secara dinamik menggunakan "" Simbol Pengkomputeran Sambungan Sambungan:
<code class="language-sql">WITH ConcatenatedXML AS ( SELECT empName, ( SELECT ', ' + projID FROM project_members WHERE empName = e.empName FOR XML PATH('') ) AS projIDs FROM project_members AS e GROUP BY empName ) SELECT empName, SUBSTRING(projIDs, 2, LEN(projIDs) - 2) AS group_concat_result FROM ConcatenatedXML;</code>
Gunakan fungsi tersuai pengguna (UDF):
Akhirnya, anda boleh membuat UDF yang mensimulasikan tingkah laku kumpulan_concat:
<code class="language-sql">DECLARE @SQL NVARCHAR(MAX) = 'SELECT empName, '''; SELECT @SQL = @SQL + ', ' + projID FROM project_members WHERE empName = ( SELECT TOP 1 empName FROM project_members GROUP BY empName HAVING COUNT(*) > 1 ); SET @SQL = @SQL + ''' AS group_concat_result FROM project_members GROUP BY empName;'; EXEC (@SQL);</code>
UDF ini boleh digunakan seperti berikut:
Atas ialah kandungan terperinci Bagaimana untuk mensimulasikan fungsi MySQL's Group_concat dalam SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!