就不多说什么了,直接上图,上代码。然后后面就直接提问了。
表table1(wl int)
表tblDestL(wl int,TaskID int,TaskName varchar(20),Tnum int)
Select Distinct wl into #1 from table1
set @sql='select TaskID,TaskName'
select @sql=@sql+',['+wl+']=isnull(max(case wl when '''+ cast(wl as varchar)+''' then TNum end),0)' from #1
set @sql=@sql+' from tblDestL group by TaskID,TaskName order by TaskID'
EXEC(@SQL)
1,当#1中列wl无数据时
2,当#1中列wl有数据时
为什么有数据和无数据,查询的结果列会有变化?
select @sql=@sql+',['+wl+']=isnull(max(case wl when '''+ cast(wl as varchar)+''' then TNum end),0)' from #1是如何执行的?
#1没有数据的时候 那个select @sql=@sql+....不会执行啊
他是相当于按行向@sql后附加
你可以让#1中有3行,然后print @sql看看结果
@飞来飞去:列的问题已经弄明白了,另外后面代码执行问题通过多次测试也已弄明白,有问题时还是要能静下心,这样什么问题都不怕搞不懂。