注册 登录
编程论坛 SQL Server论坛

求助sql关于sum大量列的问题

kamishiro 发布于 2013-11-09 12:32, 491 次点击
比如一列index,其余比如有上百column的数据,然后我要对这些column进行相同的index进行加总,如果列少,我直接可以:
select index, sum(c1) c1, sum(c2) c2,sum(c3) c3 from data group by index
但column有上百个 我总不可能一个个c1 c2....c100这样列出来吧,有什么好办法吗?
1 回复
#2
mxbing19842014-08-08 14:14
Declare @sql Varchar(8000)
Set @sql='Select index,'
Select @sql=@sql+'sum('+name+') As '+name+',' From sys.columns
    Where object_id=object_id('data')
        And name like 'c%'
Set @sql=STUFF(@sql,LEN(@sql),1,'')+' From data Group By index'
Exec(@sql)
--把data表所有c开头的栏位,组成一个sum的字符串,然后执行
1