declare @sql varchar(2000) 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) |
表名:分组:分栏:数值: 计算: |
Name | Subject | Result |
---|---|---|
张三 | 语文 | 80 |
张三 | 数学 | 90 |
张三 | 物理 | 85 |
李四 | 语文 | 85 |
李四 | 数学 | 92 |
李四 | 物理 | 82 |
姓名 | 语文 | 数学 | 物理 |
---|---|---|---|
张三 | 80 | 90 | 85 |
李四 | 85 | 92 | 82 |
创建一个合并的函数 create function fmerg(@id int) returns varchar(8000) as begin declare @str varchar(8000) set @str='' select @str=@str+','+cast(pid as varchar) from 表A where id=@id set @str=right(@str,len(@str)-1) return(@str) End go --调用自定义函数得到结果 |
表结构 | 结果 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|