SQL> select * from clark_t;
NAME COURSE GRADE
---------- -------------- ----------
tom JDBC 20
tom Hibernate 50
tom Spring 80
marry JDBC 30
marry Hibernate 60
marry Spring 70
6 rows selected.
SQL> select name,
2 max(decode(course,'JDBC',grade)) JDBC,
3 max(decode(course,'Hibernate',grade)) Hibernate,
4 max(decode(course,'Spring',grade)) Spring
5 from clark_t
6 group by name;
NAME JDBC HIBERNATE SPRING
---------- ---------- ---------- ----------
tom 20 50 80
marry 30 60 70
oracle 11g下 用pivot函数
SQL> select * from clark_t
2 pivot
3 ( max(grade) for course in ('JDBC' as JDBC,'Hibernate' as Hibernate,'Spring' as Spring))
4 /
NAME JDBC HIBERNATE SPRING
---------- ---------- ---------- ----------
tom 20 50 80
marry 30 60 70
单独使用decode是不行的.
declare
n number;
begin
n:=decode(1,2,3,4,5);
end;
/
n:=decode(1,2,3,4,5);
*
error at line 4:
ora-06550: line 4, column 5:
pls-00204: function or pseudo-column 'decode' may be used inside a sql statement only
ora-06550: line 4, column 2:
pl/sql: statement ignored
但是放到select语句里就可以了.
declare
n number;
begin
select decode(1,2,3,4,5)
into n
from dual;
end;
/
pl/sql procedure successfully completed.
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....