2014-02-06 79 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 Server查詢,,,它工作得很好,你可以利用的答案,不要忘了答案標記爲正確的,因此可以在未來幫助其他人。 –

回答

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