SQL Server中將多行數據拼接爲一行數據而且有特殊字符

有表結構以下:spa

 

這時,要求顯示全部學生的愛好的結果集,代碼以下:3d

SELECT B.name,LEFT(StuList,LEN(StuList)-1) as hobby FROM ( SELECT name, (SELECT hobby+',' FROM student WHERE name=A.name FOR XML PATH('')) AS StuList FROM student A GROUP BY name ) B 

結果:code

由於有特殊字符,因此轉義了,不轉義使用   ,TYPE).value('.','NVARCHAR(MAX)'),以下:blog

SELECT B.name,LEFT(StuList,LEN(StuList)-1) as hobby FROM ( SELECT name, (SELECT hobby+',' FROM student WHERE name=A.name FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)') AS StuList FROM student A GROUP BY name ) B 

結果:class

相關文章
相關標籤/搜索