この形式のテーブル値があります
sam
jack
sam
john
Declare @name varchar(max)
select @name = COALESCE(@name + ', ','')+ user_email
from PostedCommentMaster where article_id = @id
個別の値を取得するにはどうすればよいですか
sam,jack,john
このような。
この形式のテーブル値があります
sam
jack
sam
john
Declare @name varchar(max)
select @name = COALESCE(@name + ', ','')+ user_email
from PostedCommentMaster where article_id = @id
個別の値を取得するにはどうすればよいですか
sam,jack,john
このような。
selectステートメントをsubselectにラップし、結果に合体を適用できます。
Declare @name varchar(max)
select @name = COALESCE(@name + ', ','') + user_email
from (select distinct user_email
from PostedCommentMaster
where article_id = @id) pc
これは、SQL Serverの文書化されていない機能を使用して、結果を1つの文字列に連結することに注意してください。私はもうそれへのリンクを見つけることができませんが、あなたがこの振る舞いに頼るべきではないことを読んだことを思い出します。
より良い代替策は、FOR XML
構文を使用して連結された文字列を返すことです。SOで検索すると、例として使用できる複数の結果が返されます。
どうぞ
Declare @name varchar(max)
select
@name = COALESCE(@name + ', ','')+name from (select distinct user_email
from
PostedCommentMaster) as t
where
article_id = @id
group by
一意の値に使用できます。
Declare @name varchar(max)
select @name = COALESCE(@name + ', ','')+ user_email
from PostedCommentMaster where article_id = @id
group by user_email
SELECT 個別の @name = COALESCE(@name + ', ','')+ PostedCommentMaster からの user_email で、article_id = @id