您的位置:首页 > 数据库 > Oracle

Oracle 倒置矩阵 与 大小写问题

2011-01-07 14:25 411 查看

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!汗。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: