首页 新闻 赞助 找找看

sql 增加列

0
悬赏园豆:10 [已解决问题] 解决于 2013-03-15 22:09

就不多说什么了,直接上图,上代码。然后后面就直接提问了。

表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是如何执行的?

遗失的似曾相识的主页 遗失的似曾相识 | 初学一级 | 园豆:183
提问于:2013-03-13 22:21
< >
分享
最佳答案
0

#1没有数据的时候 那个select @sql=@sql+....不会执行啊

他是相当于按行向@sql后附加

收获园豆:10
飞来飞去 | 老鸟四级 |园豆:2057 | 2013-03-14 11:44

你可以让#1中有3行,然后print @sql看看结果

飞来飞去 | 园豆:2057 (老鸟四级) | 2013-03-14 11:47

@飞来飞去:列的问题已经弄明白了,另外后面代码执行问题通过多次测试也已弄明白,有问题时还是要能静下心,这样什么问题都不怕搞不懂。

遗失的似曾相识 | 园豆:183 (初学一级) | 2013-03-15 22:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册