let say i have a table like below Food(FoodID,FoodName) Package(PackageID,PackageName,FoodID)
When i do
SELECT P.PackageID,F.FoodName FROM FOOD F inner join PACKAGE P on F.FoodID = P.FoodID
it returns data like following
PackageID FoodName 1 Mango 1 Apple 1 Tacos
but i want to get it like following
PackageID FoodName 1 Mango,Apple,Tacos
How to do it
CREATE TABLE #FOOD (FoodID INT, FoodName VARCHAR(100) )
CREATE TABLE #PACKAGE (PackageID INT, FoodID INT)
INSERT INTO #FOOD
SELECT 1, 'Mango'
Union
SELECT 2, 'Apple'
Union
SELECT 3, 'Tacos'
INSERT INTO #PACKAGE
SELECT 1, 1
Union
SELECT 1, 2
Union
SELECT 1, 3
SELECT F1.PackageID,
STUFF(( SELECT ', ' + F2.FoodName
FROM
(SELECT P.PackageID,F.FoodName
FROM #FOOD F
INNER JOIN #PACKAGE P
ON F.FoodID = P.FoodID) F2
WHERE F1.PackageID = F2.PackageID
FOR XML PATH('')
), 1, 2, '') [Attributes]
FROM (SELECT P.PackageID,F.FoodName
FROM #FOOD F
INNER JOIN #PACKAGE P
ON F.FoodID = P.FoodID) F1
GROUP BY F1.PackageID
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.