深入学习ing

sqlserver实现group by实现group_concat分组并拼接一个字段

  前言:sqlserver在实现分组拼接一个字段的实现上较mysql比较复杂一些,如果实现类似功能需要借助:for xml path('')和stuff两个方法一起使用即可

sql分组拼接示例:

SELECT TOP 1 o.ID,
STUFF((SELECT ','+CONVERT(VARCHAR(100),bill.ID) FROM dbo.TB_OrderBill bill 
    WHERE bill.OrderID=o.ID AND bill.SiteID=o.SiteID FOR XML PATH('')),1,1,'') BillIDArray
FROM dbo.TB_Order o
WHERE o.AddTime>'2021-01-01' AND o.AddTime<'2021-02-01'

效果:

备注:

  for xml path('')   :  负责将单列多个结果集拼接成一个字符串(分割符使用+号连接);

  STUFF(express,start,length,replace)负责修建拼接好的字符串,将多余字符清理掉;

posted on 2022-10-17 15:30  深入学习ing  阅读(4691)  评论(0编辑  收藏  举报

导航