行列转换
2016-08-16 17:33
225 查看
--建表 create table [Scores] ( [ID] int identity(1,1) primary key, [Student] varchar(20) , [Subject] varchar(30), [Score] float )
insert into Scores(Student,Subject,Score) values('张三','语文','90')
方法一:
select Student AS '姓名' , max(CASE Subject when '语文' then Score else 0 end) AS '语文' , max(CASE Subject when '数学' then Score else 0 end) AS '数学' , max(CASE Subject when '英语' then Score else 0 end) as '英语' from [Scores] group by Student order by Student
方法二(据说Sql Server2005以下的不能用):
/* pivot( 聚合函数(要转成列值的列名) for 要转换的列 in(目标列名) ) */ select Student as '姓名', avg(语文) as '语文', avg(英语) as '英语', avg(数学) as '数学' from Scores pivot( avg(Score) for Subject in (语文,英语,数学) )as NewScores group by Student order by Student asc
相关文章推荐
- 【JBOSS】数据库连接配置小结
- PowerShell 远程管理之 about_Remote_Troubleshooting
- TCP connection status
- ubuntu 安装配置mysql
- 2015 年全国房价会呈什么趋势?
- weex JS部分环境搭建简单笔记
- 如何在Ionic2项目中使用第三方JavaScript库
- 设计模式之解释器模式--- Pattern Interpreter
- 第50条:如果其他类型更合适,则尽量避免使用字符串
- 【ORACLE】字符串操作 B字符串时A的一部分
- 【ORACLE】MD5加密
- mysql事务和锁InnoDB
- GZAPI框架初识
- fg与bg命令
- ubuntu14 搭建FTP环境
- Maple中如何从内存中清除某个变量?
- SuperMap iServer常见问题解答集锦 (二)
- css定位 absolute relative fixed
- linux 作为服务器之对比windows
- poj1276(dp) Cash Machine