通常,您希望客户端应用程序或报表工具像这样汇总数据。但是,在Sql Server 2017及更高版本中,您可以使用string_agg() function(沿着GROUP BY)来实现这一点。
SELECT t1.System, t1.Location, string_agg(t2.User, ',') As [User]
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.System=t2.System
GROUP BY t1.System, t1.Location
SELECT States.name, STRING_AGG(CONVERT(NVARCHAR(max), ISNULL(County,'N/A')), ', ') AS Counties
FROM Counties
join States on Counties.StateID=State.ID
GROUP BY States.name;
2条答案
按热度按时间gjmwrych1#
通常,您希望客户端应用程序或报表工具像这样汇总数据。但是,在Sql Server 2017及更高版本中,您可以使用
string_agg()
function(沿着GROUP BY
)来实现这一点。早期版本需要ugly
FOR XML PATH
query。6mzjoqzu2#
答案非常简单,使用美国的州和县,Counties表包含一个键(StateID),用于标识County所属的州。