/ /すべてのカテゴリをグループ化して含める方法-sql、sql-server、sql-server-2016

すべてのカテゴリをグループ化してインクルードする方法 - sql、sql-server、sql-server-2016

生データを取得してグループ化したい名前。ただし、各名前が関連付けられているすべてのカテゴリを表示します。うまくいけば、この写真が私がやろうとしていることを単純化してくれることを願っています。誰かがこれを達成する方法を知っていますか?ありがとう!

ここに画像の説明を入力

回答:

回答№1は2

あなたは FOR XML PATH CSV文字列を作成します。の STUFF リストから先頭のコンマを削除するだけです。

SELECT Name, Categories = STUFF((
SELECT ", " + Category
FROM dbo.YourTable
WHERE Name = x.Name
FOR XML PATH(""), TYPE).value(".[1]", "nvarchar(max)"), 1, 2, "")
FROM dbo.YourTable AS x
GROUP BY Name;

回答№2の場合は1

以下のものとxmlパスを使用できます。

Select [Name],
Categories = stuff((select Concat(",",category) from #rawdata r where r.[Name] = ou.[Name] for xml path("")), 1,1, "")
from #rawdata ou group by [Name]

SQL Server 2017またはSQL Azureを使用している場合、次のようにString_Aggを使用できます

Select [Name], String_Agg(category,",") from #rawdata
group by [Name]