oracle实现矩阵倒置,Oracle 倒置矩阵 与 大小写问题

Oracle 倒置矩阵小插曲

首先是倒置矩阵问题:

(要求一条SQL将下面的矩阵倒置)

【附表:】

create  table    student_data  (

id    number   primary key ,

name   varchar2(32),

course varchar2(32),

score  number(4,2)

);

insert into   student_data       values (1,'aaa','java',88);

insert into   student_data       values (2,'aaa','c#',98);

insert into   student_data       values (3,'bbb','java',77);

insert into   student_data       values (4,'bbb','c#',87);

转换前的数据:

id  name   course    score

1   aaa    java      88

2   aaa    c#        98

3   bbb    java      77

4   bbb    c#        87

转换后的数据:

name  java  c#

aaa   88    98

bbb   77    87

SQL语句如下:

select t.name ,sum(t.Java)   Java ,sum(t.c#1)   C#

from ( select name , case

when course = 'java' then score else 0 end "Java"

, case

when course = 'c#' then score else 0 end "c#1"

from student_data

)   t

group by (t.name);

运行中间的

select name , case

when course = 'java' then score else 0 end "Java"

, case

when course = 'c#' then score else 0 end "c#1"

from student_data;

没有错误。但运行全部就出现错误!

检查N遍后,未果。

问过某位高人后,才发现:

-_-  Oracle里所有的字段都是大写,所以以后写SQL语句应该注重大小写!晕死。。。。

改过后:

select t.name ,sum(t.JAVA)   Java ,sum(t.C#1)   C#

from ( select name , case

when course = 'java' then score else 0 end "JAVA"

, case

when course = 'c#' then score else 0 end "C#1"

from student_data

)   t

group by (t.name);

运行,OK!汗。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值