2016-06-22 12 views
0

mit dem folgenden einfachen BeispielWie Sie Textfelder in einem in SQL Server zu einem Pivot machen?

create table #example (
ProductID int, 
ProductName varchar(100), 
CustomerID int 
) 

insert #example values 
    (1,'Product 1',100), 
    (2,'Product 2',100), 
    (3,'Product 3', 101), 
    (3,'Product 3', 102) 

Ich möchte eine Ergebnismenge zu sehen, die CustomerID hat, ProductNamesBought wo die Produkte durch Komma getrennt sind. z.B.

CustomerID ProductNamesBought 
========== ==================== 
100  Product 1, Product 2 
101  Product 3 
102  Product 3 

Antwort

1
SELECT e.CustomerID, 
     STUFF((SELECT ','+ProductName FROM #example WHERE e.CustomerID = CustomerID FOR XML PATH('')),1,1,'') as ProductNamesBought 
FROM #example e 
GROUP BY e.CustomerID 

Ausgang:

CustomerID ProductNamesBought 
100   Product 1,Product 2 
101   Product 3 
102   Product 3