2014-02-06 2 views
1

Привет мои оригинальные данные, как показано нижеКак получить значения столбца в SQL разделенных запятыми

Id | Value 
-----+------ 
0001 | IN 
0001 | ME 
0001 | OH 
0001 | ON 
0002 | AC 
0002 | ON 
0002 | VI 
0002 | ZO 
0003 | ME 
0003 | OO 
0003 | PS 
0003 | QA 

Требуется, чтобы получить данные в

Id | Value 
-----+------ 
0001 | IN,ME,OH,ON 
0002 | AC,ON,VI,ZO 
0003 | ME,OO,PS,QA 

в SQL Server 2008

+0

Я проверил запрос в SQL сервере ,,, это хорошо работает, вы можете использовать ответ, и не забудьте ответ пометить как правильно, чтобы он мог помогите другим в будущем. –

ответ

0

Этот будет работать:

SELECT 
    t1.ID, 
    MemberList = substring((SELECT (', ' + Value) 
         FROM your_table t2 
         WHERE t1.ID = t2.ID 
         ORDER BY 
          ID, 
          Value 
         FOR XML PATH('') 
        ), 3, 1000)FROM your_table t1 
    GROUP BY ID 
0
drop table #t 

create table #t(id varchar(10),value char(10)) 

insert into #t values('0001','IN'), 
('0001','ME'), 
('0001','OH'), 
('0001','ON'), 
('0002','AC'), 
('0002','ON'), 
('0002','VI'), 
('0002','ZO'), 
('0003','ME'), 
('0003','OO'), 
('0003','PS'), 
('0003','QA') 

select distinct id, 
    stuff((select ',' + CAST(t2.Value as varchar(10)) 
    from #t t2 where t1.id = t2.id 
    for xml path('')),1,1,'') as Value 
from #t t1 
group by id,Value 

Выход:

enter image description here

See Demo

Смежные вопросы