2016-12-21 6 views
-2

2列の結果セットで、1つの列をピボットする必要があります。例えば、 IDごとのメールアドレスの数は変えることができSQL Server 2012の列への列

enter image description here

。 PIVOTがこの要件に対応するかどうかは不明です。私は一時テーブルを使用することはできません

、あなたは、この目的のためにfor xml path('')と組み合わせるcross apply使用できるSQL Serverでの唯一の選択クエリ

+1

は、テキストと予想される出力などのように、サンプルデータを共有してくださいtext – TheGameiswar

+1

電子メールアドレスの数、したがって予想される出力の列数が異なる場合は、おそらく動的SQLが必要です。しかし、より重要なのは、どのような価値を使ってピボットするのでしょうか? –

+0

これは一般的な動的ピボットまたは動的クロス集計のようです。それだけでこれを行う方法の例は何百もありますが、何千もありません。インターネットの周りには無数の人がいます。 –

答えて

0

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 
関連する問題