我照样建了个表,
假设有张学生成绩表(CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82
-----------------------------------------
然后再照样执行查询:
declare @sql varchar(4000)
set @sql = 'select Name'
select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from CJ) as a
select @sql = @sql+' from test group by name'
exec(@sql)
----------------------------------------------
提示错误:
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'test' 无效。
-----------------------------------------------
我把declare @sql varchar(4000) 中的4000改为40. 再执行
提示错误:服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '数学' 附近有语法错误。
----------------------------------------------
我是新手,没法弄明白,请问各位高手是怎么回事?