34,837
社区成员




declare @str varchar(max)
set @str='2010,2011,2012'
create table #a
(
name varchar(255)
)
declare @s varchar(max)
set @s='insert #a select '+''''+REPLACE(@str,',',''''+' union all select '+'''')+''''
--print @s
exec(@s)
declare @sql varchar(max)
set @sql=''
select @sql=@sql+','+'sum(isnull('+name+',0))'+' '+name from #a
select @sql=right(@sql,len(@sql)-1)
print @sql
/*
sum(isnull(2010,0)) 2010,sum(isnull(2011,0)) 2011,sum(isnull(2012,0)) 2012
*/
declare @str varchar(max)
set @str='2010,2011,2012'
create table #a
(
name varchar(255)
)
declare @s varchar(max)
set @s='insert #a select '+''''+REPLACE(@str,',',''''+' union all select '+'''')+''''
--print @s
exec(@s)
declare @sql varchar(max)
set @sql=''
select @sql=@sql+' '+'sum(isnull('+name+',0))'+' '+name from #a
print @sql
/*
sum(isnull(2010,0)) 2010 sum(isnull(2011,0)) 2011 sum(isnull(2012,0)) 2012
*/