网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 开发技术 > 如何使用分析函数来进行行和列的转换-开发技术  

如何使用分析函数来进行行和列的转换-开发技术

2008-03-26  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

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

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

    DEPTNO ENAME             SEQ
---------- ---------- ----------
        10 KING                1
        10 CLARK               2
        10 MILLER              3
        20 SCOTT               1
        20 FORD                2
        20 JONES               3
        20 ADAMS               4 网管联盟bitsCN@com
        20 SMITH               5
        30 BLAKE               1
        30 ALLEN               2
        30 TURNER              3
        30 WARD                4
        30 MARTIN              5
        30 JAMES               6 网管u家u.bitscn@com

14 rows selected.

网管u家u.bitscn@com

网管论坛bbs_bitsCN_com

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

网管bitscn_com

 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  /

网管联盟bitsCN_com

DEPTNO HIGHEST    SECOND     THIRD
---------- ---------- ---------- ----------
10 KING       CLARK      MILLER
20 SCOTT      FORD       JONES
30 BLAKE      ALLEN      TURNER 中国网管论坛bbs.bitsCN.com

中国网管联盟bitsCN.com


TAGs
 上一篇:如何用dbms_rowid获取rowid的详细信息-开发技术   下一篇:如何在高级的复制中切换主体定义站点-开发技术
如何使用分析函数来进行行和列的转换-开发技术 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: