SQL Server Stuff基于条件

MDM*_*lik 1 sql sql-server sql-server-2008

这是我目前的表格.

ImageID    Brand     Segment
101        Kitkat     Biscuit
101        Galaxy     Biscuit
102        Kitkat     Chocolate
102        Kitkat     Chocolate
103        Kitkat     Chocolate
103        Twix       Ice Cream
Run Code Online (Sandbox Code Playgroud)

我想要的桌子

ImageID    Brand             Segment
101        Kitkat,Galaxy     Biscuit
102        Kitkat            Chocolate
103        Kitkat, Twix      Chocolate, Ice Cream
Run Code Online (Sandbox Code Playgroud)

我正在尝试分组ImageID.以这种方式,如果一个ImageID有多个记录.然后 BrandSegment会的东西,但不重复[编号:102,奇巧和巧克力字没有得到重复]

提前致谢.

Aar*_*etz 5

STUFF 是一种常见的SQL Server方法:

SELECT T.ImageID,
       STUFF((SELECT DISTINCT ',' + Brand
             FROM yourTable T2
             WHERE T2.ImageID= T.ImageID
             FOR XML PATH ('')),1,1,'') Brand,
       STUFF((SELECT DISTINCT ',' + Segment
             FROM yourTable T2
             WHERE T2.ImageID= T.ImageID
             FOR XML PATH ('')),1,1,'') Segment
FROM yourTable T
GROUP BY T.ImageID
Run Code Online (Sandbox Code Playgroud)