如何在sql server 2014中显示列的所有值的集合

如何在sql server 2014中显示列的所有值的集合,sql,sql-server,Sql,Sql Server,假设我有一张像下面这样的桌子 食物(FoodID,FoodName) 软件包(PackageID、PackageName、FoodID) 当我这样做的时候 SELECT P.PackageID,F.FoodName FROM FOOD F inner join PACKAGE P on F.FoodID = P.FoodID 它返回如下数据 PackageID FoodName 1 Mango 1 Apple 1

假设我有一张像下面这样的桌子 食物(FoodID,FoodName) 软件包(PackageID、PackageName、FoodID)

当我这样做的时候

SELECT P.PackageID,F.FoodName  FROM FOOD F inner join PACKAGE P on F.FoodID = P.FoodID
它返回如下数据

PackageID FoodName 1 Mango 1 Apple 1 Tacos PackageID FoodName 1 Mango,Apple,Tacos 包装食品名称 1芒果 一个苹果 1份墨西哥玉米卷 但我想得到它如下

PackageID FoodName 1 Mango 1 Apple 1 Tacos PackageID FoodName 1 Mango,Apple,Tacos 包装食品名称 1个芒果、苹果、玉米卷 如何操作

可能重复的
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