列到SQL Server 2012中的行

时间:2016-12-21 14:14:54

标签: sql sql-server sql-server-2012

我需要在2列结果集中旋转一列。例如,

enter image description here

每个ID的电子邮件地址数量可能会有所不同。不确定PIVOT是否适用于此要求。

我不能使用临时表,只能使用一个选择查询

1 个答案:

答案 0 :(得分:0)

在SQL Server中,您可以将cross applyfor xml path('')结合使用以实现此目的:

  select distinct t1.Id, t3.EmailAddress 
  from TABLE t1
  cross apply (select t2.EmailAddress+'    ' 
               from TABLE t2 
               where t2.Id=t1.Id for xml path('')
              ) t3 (EmailAddress)
  order by t1.Id