SQL Server SQL服务器查询:在JOIN期间连接多行

ebdffaop  于 2023-02-15  发布在  其他
关注(0)|答案(2)|浏览(145)

这一点之前可能已经提到过,但我无法找到我正在尝试解决的确切问题的答案。我正在使用SSMS 2018 v18.8和SQL Server 2012 SP4。我的查询需要使用联接查询多个表。一个表(表2)包含多个值,我希望在查询中将它们作为连接行返回。

我应该如何编写查询以返回所需的输出?

gjmwrych

gjmwrych1#

通常,您希望客户端应用程序或报表工具像这样汇总数据。但是,在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

早期版本需要ugly FOR XML PATH query

6mzjoqzu

6mzjoqzu2#

答案非常简单,使用美国的州和县,Counties表包含一个键(StateID),用于标识County所属的州。

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;

相关问题