SQL Server-尝试格式化表,可能使用PIVOT

SQL Server-尝试格式化表,可能使用PIVOT,sql,sql-server,pivot-table,Sql,Sql Server,Pivot Table,我有这张桌子 Email Username ------------------------- ------------------------- a@a.com a1 a@a.com a2 a@a.com a3

我有这张桌子

Email                     Username
------------------------- -------------------------
a@a.com                   a1                       
a@a.com                   a2                       
a@a.com                   a3                       
a@a.com                   a4                       
b@b.com                   b1                       
b@b.com                   b2                       
b@b.com                   b3                       
b@b.com                   b4                       
c@c.com                   c1                       
c@c.com                   c2                       
c@c.com                   c3                       
c@c.com                   c4                       

(12 row(s) affected)
但我希望每个电子邮件地址都出现一次,然后如果可能的话,在它后面列出所有相关的用户名

感谢任何帮助, 干杯

编辑

好的,很明显,所有的用户名都放在一列中,所有的用户名都连在一起,听起来有点傻,但这就是我被要求的

我想要的输出是

Email                     Username
------------------------- -------------------------
a@a.com                   a1, a2, a3, a4
b@b.com                   b1, b2, b3, b4 
c@c.com                   c1, c2, c3, c4 
d@d.com                   d1, d2, d3, d4 

使用XML路径的
尝试此操作

select
    Email,
    Username = 
        stuff((
            select
                ', ' + t2.Username
            from #table1 t2
            where
                t2.Email = t1.Email
            group by t2.Username
            for xml path(''), type).value('.', 'varchar(max)'
        ), 1, 2, '')
from #table1 t1

你看起来像这样?你能把你想要的东西贴出来吗
select
    Email,
    Username = 
        stuff((
            select
                ', ' + t2.Username
            from #table1 t2
            where
                t2.Email = t1.Email
            group by t2.Username
            for xml path(''), type).value('.', 'varchar(max)'
        ), 1, 2, '')
from #table1 t1