---递归的select 变量
----逆规范化数据列表 declare @avi varchar(3000) set @avi='' select @avi=@avi+d.name1 from jinxing_gengxin as d select @avi --select d.name1 from jinxing_gengxin as d
----动态交叉表查询 --使用case 方法创建固定列数的交叉表 select id,sum(case X when 'A' then data else 0 end) as a,sum(case X when 'B' then data else 0 end) as b from Table Group by Y order by Y
---使用动态查询代码创建
declare @Xcolumns nvarchar(1024) set @Xcolumns='' select @Xcolumns=@Xcolumns+' sum(case X when '' '+[a].[column]+'''then Data else 0 end ) as '+[a].[column]+',' from (select distinct X as [Column] from RawData ) as a set @@Xcolumns ='select Y,'+@Xcolumns+' sum(data) as tatal from RawData Group by Y order by Y'