SQL 中 XML 路径的分组依据

Posted

技术标签:

【中文标题】SQL 中 XML 路径的分组依据【英文标题】:Group by for XML Path ibn SQL 【发布时间】:2018-03-22 06:09:59 【问题描述】:

我正在尝试将列中的一些值连接到单个字段中。

到目前为止,我有以下代码。

SELECT DISTINCT [customer id]
      ,[customer name]
      ,STUFF( (SELECT ',' + [description] 
                             FROM [Invoicing].[dbo].[CurrentBillMaster] 
                             ORDER BY [description]
                             FOR XML PATH('')),
                            1, 1, '')
      ,[id]
      ,[Section]
      ,[customerpo]
  FROM [Invoicing].[dbo].[CurrentBillMaster]
  GROUP BY [customer id], [customer name], [description],[qty],
           [identifier],[FromDate],[ToDate],[id],[Section],[customerpo]

代码基本上可以工作,但是我想要连接描述,只是为了显示该唯一 [客户 ID] 的描述

非常感谢任何帮助

【问题讨论】:

添加样本数据和预期输出以获得更好的答案 【参考方案1】:

您需要关联子查询:

SELECT  [customer id]
      ,[customer name]
      ,STUFF( (SELECT ',' + [description] 
                             FROM [Invoicing].[dbo].[CurrentBillMaster] t
                             WHERE  t.Customer_id = c.customer_id  -- here
                             ORDER BY [description]
                             FOR XML PATH('')),
                            1, 1, '')
      ,[id]
      ,[Section]
      ,[customerpo]
  FROM [Invoicing].[dbo].[CurrentBillMaster] c
  GROUP BY [customer id], [customer name], [description],[qty],
           [identifier],[FromDate],[ToDate],[id],[Section],[customerpo]

【讨论】:

以上是关于SQL 中 XML 路径的分组依据的主要内容,如果未能解决你的问题,请参考以下文章

带有排序依据的 SQL 分组依据

SQL Server xml 路径中的 XML 格式

XML节点中包含路径的SQL变量

Spark SQL 中分组依据和窗口函数如何交互?

sql 分组依据和排序依据

从 SQL 表生成 XML 路径格式