Verwenden von PIVOT Sie können Folgendes tun
With SampleData AS
(
SELECT 'Team1' as Team , 'example@sqldat.com' as email, 'A' as Groups
UNION SELECT 'Team1' as Team , 'example@sqldat.com' as email, 'B' as Groups
UNION SELECT 'Team1' as Team , 'example@sqldat.com' as email, 'C' as Groups
UNION SELECT 'Team2' as Team , 'example@sqldat.com' as email, 'A' as Groups
UNION SELECT 'Team2' as Team , 'example@sqldat.com' as email, 'B' as Groups
UNION SELECT 'Team2' as Team , 'example@sqldat.com' as email, 'C' as Groups
)
SELECT Team, A, B,C FROM
(SELECT * FROM SampleData) source
PIVOT
(MAX(email) FOR Groups IN ([A], [B], [C]) )as pvt
Produziert
Team A B C
----- ---------------- ---------------- ----------------
Team1 example@sqldat.com example@sqldat.com example@sqldat.com
Team2 example@sqldat.com example@sqldat.com example@sqldat.com
Sehen Sie sich ein funktionierendes Data.SE-Beispiel an
In einer Datenbank, die PIVOT nicht unterstützt, können Sie stattdessen mehrere Verknüpfungen zu Ihrer Tabelle vornehmen. Obwohl Sie es vielleicht trotzdem möchten, da wir, wie GBN darauf hingewiesen hat, kein Aggregat verwenden.
With SampleData AS
(
SELECT 'Team1' as Team , 'example@sqldat.com' as email, 'A' as Groups
UNION SELECT 'Team1' as Team , 'example@sqldat.com' as email, 'B' as Groups
UNION SELECT 'Team1' as Team , 'example@sqldat.com' as email, 'C' as Groups
UNION SELECT 'Team2' as Team , 'example@sqldat.com' as email, 'A' as Groups
UNION SELECT 'Team2' as Team , 'example@sqldat.com' as email, 'B' as Groups
UNION SELECT 'Team2' as Team , 'example@sqldat.com' as email, 'C' as Groups
)
SELECT
source.Team,
A.email,
B.email,
C.email
FROM
(SELECT DISTINCT TEAM From SampleData) source
LEFT JOIN SampleData A
ON source.Team = A.Team
AND A.GROUPS = 'A'
LEFT JOIN SampleData B
ON source.Team = B.Team
AND B.GROUPS = 'B'
LEFT JOIN SampleData C
ON source.Team = C.Team
AND C.GROUPS = 'C'
Sehen Sie sich ein funktionierendes Data.SE-Beispiel an