SQL Server中將多行數據拼接為一行數據(一個字符串)


表A中id與表B中aid為一對多的關系

例如:

表A:

id name
a1 tom
a2 lily
a3 lucy

表B:

id aid value
b1 a1 B1
b2 a1 B2
b3 a2 B3
b4 a3 B4
b5 a2 B5
b6 a3 B6
b7 a3 B7

使用for xml path('') 和stuff合並顯示多行數據到一行中   :

第一種,不使用stuff,結果如下:

select id, [val]=(  
select [value] +',' from tb as b where b.id = a.id for xml path('')
) from tb as a  
group by id  

結果:

id val
a1 B1,B2,
a2 B3,B5,
a3 B4,B6,B7,

 

 

第二種,使用stuff將最后的逗號去掉

select id, [val]=stuff((  
select ','+[value] from tb as b where b.id = a.id for xml path('')),1,1,'')
from tb as a  
group by id  

結果:

id val
a1 B1,B2
a2 B3,B5
a3 B4,B6,B7


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM