1. 程式人生 > >SQL將一列多行資料合併

SQL將一列多行資料合併

SQL2005以上

用到兩個方法 stuff 和 for xml path

stuff :

stuff(param1, startIndex, length, param2)
說明:將param1中自startIndex(SQL中都是從1開始,而非0)起,刪除length個字元,然後用param2替換刪掉的字元

for xml path:

它就是將查詢結果集以XML形式展現

l兩個方法組合就可以將多行合併

具體的SQL:

SELECT DISTINCT
        VisitID ,
        STUFF(( SELECT  ',' + DiagDesc
                FROM    dbo.Pat_Diagnose
                WHERE   VisitID = a.VisitID
              FOR
                XML PATH('')
              ), 1, 1, '') AS DiagDesc
FROM    dbo.Pat_Diagnose AS a;