Oracle 行列转化示例

1:行列转换 SQL> create table course 2 (name varchar2(10), 3 subject varchar2(10), 4 grade number 5 ); 表已创建。 SQL> insert into course values('张三','语文',80); 已创建 1 行。 SQL> insert into course values('张三','数学',70); 已创建 1 行。 SQL> insert into course values('张三','英语',56); 已创建 1 行。 SQL> insert into course values('张三','英语',68); 已创建 1 行。 SQL> insert into course values('李四','语文',90); 已创建 1 行。 SQL> insert into course values('李四','数学',80); 已创建 1 行。 SQL> insert into course values('李四','英语',100); 已创建 1 行。 SQL> commit; select name "姓名",avg(decode(subject,'语文', grade,null)) "语文", avg(decode(subject,'数学', grade,null)) "数学", avg(decode(subject,'英语', grade,null)) "英语" from course group by name; SQL> insert into course values('李四','英语',100); 已创建 1 行。 SQL> commit; 提交完成。 SQL> select * from course where ROWID!=(select max(ROWID) from course c 2 where course.grade = c.grade and course.name = c.name); NAME SUBJECT GRADE ---------- ---------- ---------- 李四 英语 100 --返回参数的星期几的写法: SELECT TO_CHAR(SYSDATE,'D') FROM DUAL; -- 返回参数一年中的第几天的写法: SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL; --返回参数中一年的第几周的写法: SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL; --如果修改表名? alter table emp rename to employee;--emp旧  

你可能感兴趣的:(Oracle 行列转化示例)