我有一张包含以下结构的表格。它有8列,其中1st 7有些时间包含重复,最后一列可以有不同的值(尽管没有唯一值)。
如何为前7列选择distinct,然后将最后一列显示为逗号分隔值。
所以最后一列应该如下所示,
答案 0 :(得分:1)
在子查询中选择不同的7个值,然后执行XML STUFF以合并值
请注意“ - 在此处添加您的其他字段”
示例强>
Select A.*
,CollectionDate = Stuff((Select Distinct ',' +cast(CollectionDate as varchar(max))
From YourTable
Where Quantity=A.Quantity
and Protein =A.Protein
and Carb =A.Carb
-- Add your other fields here
For XML Path ('')),1,1,'')
From (Select Distinct
Quantity
,Protein
,Carb
-- Add your other fields here
From YourTable ) A