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