SQL 列 转换成 查询出来的 行

本文介绍了一种使用SQL查询学生表和成绩表的方法,通过CASE WHEN语句和GROUP BY实现按科目(语文、数学、英语)汇总成绩。

查询  每个学生 的  (姓名,语文,数学,英语,成绩)为列

表结构如下:

student: 学生表

grade 成绩表 :

查询出如下效果:

SQL如下:

select s.name,a.* from student s,
(select sid,
	max(CASE kemu WHEN '语文' THEN chengji ELSE 0 END) '语文',
max(CASE kemu WHEN '数学' THEN chengji ELSE 0 END) '数学',
max(CASE kemu WHEN '英语' THEN chengji ELSE 0 END) '英语' 
 from grade GROUP BY sid ) a
where s.id = a.sid

  

 

转载于:https://www.cnblogs.com/GotoJava/p/7081024.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值