Dapatkan hasil agregat lajur terkumpul menggunakan pembatas koma dalam SQL Server
Dalam Pelayan SQL, anda boleh menggunakan struktur FOR XML PATH
untuk mendapatkan hasil agregat dengan pembatas koma dan lajur berkumpulan. Pertimbangkan contoh berikut:
<code class="language-sql">SELECT ID, STUFF((SELECT ', ' + Value FROM YourTable t2 WHERE t1.ID = t2.ID FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values FROM YourTable t1 GROUP BY ID;</code>
Dalam pertanyaan ini:
FOR XML PATH
menjana senarai nilai yang dipisahkan koma untuk lajur ID
bagi setiap kumpulan (diwakili oleh lajur Value
). STUFF
Fungsi mengalih keluar ', ' pada permulaan senarai agregat. .value('.', 'NVARCHAR(MAX)')
Tukar hasil XML kepada jenis NVARCHAR(MAX) untuk mengelakkan kemungkinan ralat. Data contoh dan hasil yang dijangkakan:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
Keluaran yang dijangkakan:
ID | Values |
---|---|
1 | a,b |
2 | c |
Contoh lain:
Untuk rujukan lanjut tentang menggunakan hasil dipisahkan koma untuk pengumpulan dan pengagregatan dalam SQL Server, pertimbangkan contoh berikut:
Jawapan yang disemak ini menambah baik pertanyaan SQL dengan menukar output XML secara eksplisit kepada rentetan menggunakan .value('.', 'NVARCHAR(MAX)')
, menghalang kemungkinan ralat Penjelasan juga kekal jelas dan ringkas.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hasil Agregat dengan Nilai Dipisahkan Koma dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!