用户登录
用户注册

分享至

hibernate decode位码头

  • 作者: 关爱八卦成长滴懂小姐
  • 来源: 51数据库
  • 2021-01-24
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.
软件
前端设计
程序设计
Java相关