【SQL】將多筆相同鍵值的欄位內容合併--XML PATH

Table A 如下 :

ID  Type   DESC
1    cpu     處理器
1    cpu     雙核心
1    cpu     800外頻 
2    HD      硬碟
2    HD      500G
2    HD      5400轉

希望將欄位內容串接並以【,】分隔,可以利用 XML PATH 來將功能實作,如:

ID  Type   DESC
1    cpu     處理器,雙核心,800外頻
2    HD      硬碟,500G,5400轉

SELECT T1.id, T1.type,( 
SELECT [DESC] + ''  FROM   @TABLE A T2  WHERE  T2.id = T1.id  FOR XML PATH('')) AS [DESC]
FROM @TABLE A T1 GROUP BY id, type

STUFF 用法 :

SELECT T1.id, T1.type,( 
STUFF( (          
         SELECT ',' + [DESC]          
         FROM   @TABLE A T2          
         WHERE  T2.id = T1.id          
         FOR XML PATH('')         
         ), 1, 1, ''      
       )
) AS [DESC]
FROM @TABLE A T1
GROUP BY id, type


其它應用:

SELECT
SELECT [Father] + ','  FROM   ITT1 T2  WHERE  T2.code = T1.code  FOR XML PATH('')
) AS [Father] FROM ITT1 T1 where Code='APP04054HX00101' GROUP BY code

留言

張貼留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄