用FOR XML PATH('') 实现一列多行拼接为一行

例如,把物料的多行描述拼接为一行描述,以"/"分隔:

  UPDATE T
  SET desc1=desc2
  FROM #TEMP_01 T,(
    SELECT billno,code,desc2 = (STUFF((SELECT '/' + b.desc1 FROM #TEMP_02 b
    WHERE b.billno =a.billno and b.code=a.code ORDER BY '/'+ b.desc1 FOR XML PATH('') ),1,1,'')) 
    FROM #TEMP_02 a 
    GROUP BY billno,code
    ) S
  WHERE T.billno=S.billno AND T.code=S.code 

 

posted on 2017-03-23 08:55  朴实无华  阅读(429)  评论(0编辑  收藏  举报