2017-12-21 5 views
-1

データ行をオブジェクトにマージする方法。例えばデータ行をオブジェクトに連結/マージする方法

Declare @Email as varchar(max); 

Select @Email=email from M_Employee 

は私が持つ@emailにすべての電子メールをマージしたいです ';'セパレータとして。

SELECT @Email = STUFF((SELECT distinct ';' + 
         email 
         FROM M_Employee AS t 
         FOR XML PATH(''), TYPE 
        ).value('.', 'NVARCHAR(MAX)') 
         , 1, 1, ''); 

これはあなたに;でカンマ区切りのすべての電子メールを与える:

+5

これは非常に一般的な質問です。 'STUFF'、' FOR XML PATH'と区切られた文字列の[Google](http://www.google.com/)を持っています。構文に慣れていない場合は、試した内容で投稿を編集してください。 – Larnu

答えて

0

あなたはFOR XMLで、STUFFを使用することができます。この

select 
@Email=LEFT(l.list,LEN(l.list)-1) 
FROM 
(
SELECT Email + '; ' AS [text()] 
FROM M_Employee 
FOR XML PATH('') 
)l(list) 
0

を試してみてください。

+0

@Downvoter、説明を気にするか?!!!!!!!!答えは間違っていますか?または、私たちにあなたの空想的な答えを教えてください!!!!!!!!! 1 –

+0

opは電子メールカンマを ';'で区切りたいので、これは私の答えとは何ですか? !!!!!!!! –

+1

誰かが何の理由もなく下へ投票します。それを残しなさい。乾杯!!+ 1 – DineshDB

関連する問題