【发布时间】:2020-06-09 09:22:17
【问题描述】:
我有一个 SQL Server (2018) 查询,其中最后一列 (SP.name) 可以有多个值,从而创建重复行。我想获取最后一列的结果并将所有结果放入 1 个字段中,以逗号分隔。
例如,如果下面查询的输出是(您会看到一个人有 Field Trip 而另一个人生日)。
John , Smith, x@Z.com,New York, NY, 11208 , Field Trip
John , Smith, x@Z.com,New York, NY, 11208 , Birthday Party
我希望它是这样的,实地考察和生日在同一列。请注意,它可以超过 2 个结果,某些查询对于最后一列最多有 5 个结果。
John , Smith, x@Z.com,New York, NY, 11208 , "Field Trip,Birthday Party"
这是查询
SELECT DISTINCT
CC.FirstName, CC.LastName, CC.Email, Addresses.City, Addresses.State, Addresses.Postal, SP.Name
FROM CustContacts AS CC WITH (NoLock)
INNER JOIN Orders AS O WITH (Nolock) ON CC.CustContactID = O.ContactID
INNER JOIN Customers AS C WITH (Nolock) ON O.CustomerID = C.CustomerID
INNER JOIN SalesPrograms AS SP WITH (NoLock) ON O.SalesProgramID = SP.SalesProgramID
INNER JOIN OrderLines AS OL WITH (NoLock) ON O.OrderID = OL.OrderID
INNER JOIN RMEvents AS RME WITH (NoLock) ON OL.EventID = RME.EventID
INNER JOIN Addresses ON CC.AddressID = Addresses.AddressID
LEFT OUTER JOIN OEGroupVisits AS GV WITH (NoLock) ON O.GroupVisitID = GV.GroupVisitID
【问题讨论】:
-
没有 SQL Server 2018 版本 - 我们有 2012、2014、2016、2017 和 2019 - 任君选择
标签: sql sql-server select sql-server-2016