将楼主的数据表为t名.下面的SQL就可运行了.
select name,iif(col1<>null,col1,'')+ iif(col2<>null,','+col2,'') + iif(col3<>null,','+col3,'')
+ iif(col4<>null,','+col4,'')+iif(col5<>null,','+col5,'')+ iif(col6<>null,','+col6,'')
+ iif(col7<>null,','+col7,'')+ iif(col8<>null,','+col8,'')+ iif(col9<>null,','+col9,'')
+ iif(col10<>null,','+col10,'') as value1
from
(select name
,max(iif( num mod 10 = 1,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col1
,max(iif( num mod 10= 2,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col2
,max(iif( num mod 10 = 3,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col3
,max(iif( num mod 10 = 4,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col4
,max(iif( num mod 10 = 5,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col5
,max(iif( num mod 10 = 6,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col6
,max(iif( num mod 10 = 7,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col7
,max(iif( num mod 10 = 8,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col8
,max(iif( num mod 10 = 9,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col9
,max(iif( num mod 10 = 0,iif(rtrim(ltrim(o.value))<>null,rtrim(ltrim(o.value)),''),'')) as col10
from
(select count(a.value) as num,a.name,a.value
from t as a,t as b
where a.value>=b.value
group by a.name,a.value
)as o
group by o.name
) as a