ORACLE 10g 的行列转换(学生科目成绩)测试题

目前有这样一张表:SELECT * FROM HB_TEST;

STU_ID STU_NAME CRO_NAME GRADE
---------- ---------- ---------- ----------
1 张三 语文 68
2 李四 语文 88
3 王五 语文 72
4 小张 语文 65
1 张三 数学 90
2 李四 数学 62
3 王五 数学 94
4 小张 数学 75
1 张三 物理 50
2 李四 物理 60
3 王五 物理 70
4 小张 物理 80

最后想得到下面的这一张表:

学号 姓名 语文 数学 物理 总分
---------- ---------- ---------- ---------- ---------- ----------
1 张三 68 90 50 208
2 李四 88 62 60 210
3 王五 72 94 70 236
4 小张 65 75 80 220


经过oracle 10g 测试,实现的sql语句为:


SELECT STU_ID "学号",STU_NAME "姓名",
SUM(CASE WHEN CRO_NAME = '语文' THEN GRADE END) AS "语文",
SUM(CASE WHEN CRO_NAME = '数学' THEN GRADE END) AS "数学",
SUM(CASE WHEN CRO_NAME = '物理' THEN GRADE END) AS "物理",
SUM(GRADE) AS "总分"
FROM HB_TEST
GROUP BY STU_ID,STU_NAME;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值