2011-11-29 27 views
1

同じ列に2つのテキスト行を追加する方法、またはテキスト列にsum()を適用できる代替集計関数を追加する方法を教えてください。T-SQLの同じ列に2つのテキスト行を追加する方法

id  Name  
1   A   
1   B   
2   C   

基このようなID

結果によって。

id Names 
1 A,B 
2 C 
+2

を、あなたはより良い説明することができますしてください?あなたは何をしようとしているのですか?あなたのテーブル定義といくつかのデータを表示してください – Marco

+0

"同じ列に2つのテキスト行" - 多値列が好きですか?通常は、xmlなどのメタデータを使用するか、列の複数値を別の表に正規化します。 – StuartLC

+0

Transact-SQLの行の値を連結する:http://www.projectdmx.com/tsql/rowconcatenate.aspx – idstam

答えて

2

これを試してみてください:

declare @t table(id int, name varchar(50)) 

insert @t values(1, 'A') 
insert @t values(1, 'B') 
insert @t values(2, 'C') 


select t.id, 
    ,STUFF(( 
     select ',' + [name] 
     from @t t1 
     where t1.id = t.id 
     for xml path(''), type 
    ).value('.', 'varchar(max)'), 1, 1, '') [Names] 
from @t t 
group by t.id 

結果:

id   Names 
----------- -------------- 
1   A,B 
2   C 
+0

ありがとうございます。これはまさに私が探していたものです。 +1 – Nario

+0

正常に機能しているようですが、特殊なXML文字などを置き換える必要はありません。ユニコードサポートが必要な場合は、varcharをnvarcharに変更します。 – Hogan

関連する問題