sql 行列转换
2007-04-16 10:47
387 查看
数据表
查出下表:
消息:
select 姓名,sum(case 科目 when '数学 ' then 成绩 end) [数学 ],sum(case 科目 when '英语 ' then 成绩 end) [英语 ],sum(case 科目 when '语文 ' then 成绩 end) [语文 ],sum(case 科目 when '政治 ' then 成绩 end) [政治 ]
警告: 聚合或其它 SET 操作消除了空值。
select 姓名,sum(case 科目 when '数学 ' then 成绩 end) [数学 ],sum(case 科目 when '英语 ' then 成绩 end) [英语 ],sum(case 科目 when '语文 ' then 成绩 end) [语文 ],sum(case 科目 when '政治 ' then 成绩 end) [政治 ] from cj group by 姓名
sql语句:
declare @sql varchar(8000)
set @sql = 'select 姓名'
select @sql = @sql + ',sum(case 科目 when '''+科目+''' then 成绩 end) ['+科目+']'
from (select distinct 科目 from cj) as a
print @sql
select @sql = @sql+' from cj group by 姓名'
exec(@sql)
print @sql
查出下表:
消息:
select 姓名,sum(case 科目 when '数学 ' then 成绩 end) [数学 ],sum(case 科目 when '英语 ' then 成绩 end) [英语 ],sum(case 科目 when '语文 ' then 成绩 end) [语文 ],sum(case 科目 when '政治 ' then 成绩 end) [政治 ]
警告: 聚合或其它 SET 操作消除了空值。
select 姓名,sum(case 科目 when '数学 ' then 成绩 end) [数学 ],sum(case 科目 when '英语 ' then 成绩 end) [英语 ],sum(case 科目 when '语文 ' then 成绩 end) [语文 ],sum(case 科目 when '政治 ' then 成绩 end) [政治 ] from cj group by 姓名
sql语句:
declare @sql varchar(8000)
set @sql = 'select 姓名'
select @sql = @sql + ',sum(case 科目 when '''+科目+''' then 成绩 end) ['+科目+']'
from (select distinct 科目 from cj) as a
print @sql
select @sql = @sql+' from cj group by 姓名'
exec(@sql)
print @sql
相关文章推荐
- 行列转换等经典SQL语句
- 使用 PIVOT 和 UNPIVOT(MS SQL Server行列转换)
- 一个简单的SQL 行列转换
- SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子
- SQL行列转换
- 使用fpSpread,代替sql行列转换
- sql中行列转换
- SQL行列转换[未使用临时表]
- 每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)
- MySQL中行列转换的SQL技巧
- SQL行列转换
- SQL行列转换大全
- SQL行列转换实战
- SQL行列转换
- SQL的行列转换
- SQL行列转换:报表_公司采购表_每个公司各采购了些什么产品
- MSSql行列转换的Sql语法 详解与实例
- SQL行列转换
- 行列转换-->动态SQL语句例子
- SQL行列转换实战(转载)