日期:2014-05-18 浏览次数:20684 次
declare @sql varchar(8000) set @sql=''--赋值,否则为null select @sql = 'select Name, max(case Subject when ''' + Subject+ ''' then Result else 0 end) [' + Subject+ ']' from (select distinct Subject from cj) as a set @sql = @sql + ' from cj group by Name' print @sql
------解决方案--------------------
第一种@sql 没有初始值,null 加任何值还是null
------解决方案--------------------
把你的打印出来就是如下。 select Name, max(case Subject when '语文' then Result else 0 end) [语文] from cj group by Name select Name, max(case Subject when '数学' then Result else 0 end) [数学], max(case Subject when '物理' then Result else 0 end) [物理], max(case Subject when '语文' then Result else 0 end) [语文] from tb group by Name 就是想问这两列的区别,。 你是想把列中的值 '数学' '物理' '语文' 的都单独作为一个列 当然要 三个列了、
------解决方案--------------------
把初始化下就行