【Oracle】安装配置数据库体系架构PL/SQL备份与恢复性能调优Oracle开发

您现在的位置:首页 > 网络学院 > 数据库 > Oracle > Oracle开发 > 如何使用分析函数来进行行和列的转换

如何使用分析函数来进行行和列的转换

来源: 作者: 日期:2008-03-27

【聚杰网Oracle开发】如何使用分析函数来进行行和列的转换

    使用分析函数进行行转列的处理:比如查询scott.emp 表的用户SAL 排序信息,大家可以使用下面的查询:

 SQL> SELECT deptno, ename,
2         ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC) seq
3    FROM emp;

    DEPTNO ENAME             SEQ
---------- ---------- ----------
        10 KING                1
        10 CLARK               2
        10 MILLER              3
        20 SCOTT               1
        20 FORD                2
        20 JONES               3
        20 ADAMS               4
        20 SMITH               5
        30 BLAKE               1
        30 ALLEN               2
        30 TURNER              3
        30 WARD                4
        30 MARTIN              5
        30 JAMES               6

14 rows selected.

    然后你可以结合其他函数进行行和列的转换:

 SQL> select deptno,
  2  max(decode(seq,1,ename,null)) highest,
  3  max(decode(seq,2,ename,null)) second,
  4  max(decode(seq,3,ename,null)) third
  5  from (
  6  select deptno,ename,
  7  row_number() over
  8  (partition by deptno order by sal desc) seq
  9  from emp)
 10  where seq <=3 group by deptno
 11  /

DEPTNO HIGHEST    SECOND     THIRD
---------- ---------- ---------- ----------
10 KING       CLARK      MILLER
20 SCOTT      FORD       JONES
30 BLAKE      ALLEN      TURNER

以下相关文章您是否也应该阅读一下 无相关信息
评论   点击查看全部评论
您的评论参与,将为聚杰带来更大的动力!请不要吝啬!
快速回复
请使用文明语言让我们维护健康绿色网络环境!

匿名发表   验证码: