group_concat
MySQL dalam SQL Server 2005SQL Server 2005 tidak mempunyai fungsi group_concat
yang mudah ditemui dalam MySQL, mewujudkan cabaran apabila perlu menggabungkan nilai dalam kumpulan. Walaupun fungsi tersuai menawarkan penyelesaian, ia boleh menyusahkan mereka yang kurang biasa dengan pelaksanaannya.
Alternatif praktikal menggunakan jadual sistem SQL Server dan fungsi FOR XML PATH
. Berikut ialah contoh:
SELECT table_name, LEFT(column_names , LEN(column_names )-1) AS column_names FROM information_schema.columns AS extern CROSS APPLY ( SELECT column_name + ',' FROM information_schema.columns AS intern WHERE extern.table_name = intern.table_name FOR XML PATH('') ) pre_trimmed (column_names) GROUP BY table_name, column_names;
Untuk pengendalian watak istimewa yang lebih baik, pendekatan yang lebih mantap ialah:
WITH extern AS (SELECT DISTINCT table_name FROM INFORMATION_SCHEMA.COLUMNS) SELECT table_name, LEFT(y.column_names, LEN(y.column_names) - 1) AS column_names FROM extern CROSS APPLY (SELECT column_name + ',' FROM INFORMATION_SCHEMA.COLUMNS AS intern WHERE extern.table_name = intern.table_name FOR XML PATH(''), TYPE) x (column_names) CROSS APPLY (SELECT x.column_names.value('.', 'NVARCHAR(MAX)')) y(column_names);
Kaedah ini meniru dengan berkesan group_concat
tanpa memerlukan fungsi yang ditentukan pengguna yang kompleks, menjadikan proses lebih mudah untuk pembangun yang kurang berpengalaman dengan SQL lanjutan.
Atas ialah kandungan terperinci Bagaimana untuk mensimulasikan kumpulan MySQL di SQL Server 2005?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!