| 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 --调用自定义函数得到结果 |
| 表结构 | 结果 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|