建表语句
/*Table structure for table `score` */
drop table if exists `score`;
CREATE TABLE `score` (
`id` int(10) NOT NULL auto_increment,
`score` int(3) default NULL,
`subject` int(10) default NULL,
`student` int(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/*Data for the table `score` */
insert into `score` values (1,100,1,1),(2,99,2,1),(3,99,1,2),(4,98,2,2),(5,99,3,2);
/*Table structure for table `student` */
drop table if exists `student`;
CREATE TABLE `student` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/*Data for the table `student` */
insert into `student` values (1,'zhangsan'),(2,'lisi');
/*Table structure for table `subject` */
drop table if exists `subject`;
CREATE TABLE `subject` (
`id` int(10) NOT NULL auto_increment,
`subject` varchar(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/*Data for the table `subject` */
insert into `subject` values (1,'chinese'),(2,'math'),(3,'english');
查询语句
select t.* ,(t.chinese + t.math+ t.english) as total from (select stu.name,max(case sub.subject when 'chinese' then s.score else 0 end) as chinese,max(case sub.subject when 'math' then s.score else 0 end) as math,max(case sub.subject when 'english' then s.score else 0 end) as english from student stu,score s,subject sub where stu.id = s.student and sub.id = s.subject group by name) t
结果:
分享到:
相关推荐
sql试题及答案,sql 行列转换,sql存储过程实例
sql行列转换扩展 明源内部学习资料
oracle sql行列转换
SQL行列转换
SQL行列转换 Pivot UnPivot
sql行列转换、一个字段包含另一个字段.sql
sql行列转换[借鉴].pdf
SQL语句行列转换(附带数据库、表、视图操作) ,不错的文档。
一个简单的SQL 行列转换 Author: eaglet 在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 1 A...
本人在工作中遇到了涉及到数据库行列之间相互转换的问题,在网上搜索了很久也没有一个比较完整的解释,通过本人自己的摸索测试,整理出来了Oracle中SQL语句行列之间相互转换的资料,大家可以下载学习。
sql server 行列转换.
假设有张学生成绩表(tb)如下: Name Subject Result 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 */ ----------------------------------------------------------------...
动态 实现 SQL 2008行列转换的pivot
1. 列转行 2. 行转列 3. 多列转换成字符串 4. 多行转换成字符串 5. 字符串转换成多列 6. 字符串转换成多行
java语言 数据库 mysql数据库 sql行列转换的例子 详解
Sql语句实现表的行列转换,行转列,列转行
sqlserver行列转换,实现行列转换,全部脚本,测试通过