--测试数据
create table tab([col] int,[col1] varchar(1),[col2] varchar(1),[col3] varchar(1))
insert tab
select 1,'a','b','c' union all
select 1,'d','e','e' union all
select 2,'f','g','h' union all
select 2,'i','j','k'DECLARE @sql VARCHAR(8000)
SELECT @sql = ISNULL(@sql+',','')+'STUFF((SELECT '',''+'+name+' FROM tab WHERE col=a.col FOR XML PATH('''')),1,1,'''') ['+name+']'  
from syscolumns where id=object_id('tab')  AND colid<>1 
EXEC('SELECT col,'+@sql+' FROM #tab a GROUP BY col')/* 结果
col col1 col2 col3
1 a,d b,e c,e
2 f,i g,j h,k
*/