在SQL查詢的時候
會有需要將多行資料變成一個單一字串
以利於使用
這時候可以藉由For XML ,跟 STUFF()的配合做到這個功能
例如:
SELECT itemNO FROM Item WHERE ItemType='Food'
取得的資料可能為
itemNO
------------------
Apple0001
Banana0002
Orange0003
如果要整合成一行就可下以下的SQL
SELECT STUFF((SELECT ''+itemNO FROM Item WHERE ItemType='Food' FOR XML PATH('')),1,1,'') V
這樣的結果是
V
----------------------------------------------
Apple0001,Banana0002,Orange0003
如果配合關連性的表格使用
則可以這樣寫
select ProductName ,
ItemNO=STUFF((SELECT ''+itemNO FROM Item WHERE ItemType=P.Type FOR XML PATH('')),1,1,'')
from Product p
where pID='ABC'
ProductName | ItemNO
-------------+-------------
SunShine | Apple0001,Banana0002
For XML STUFF
留言