zoukankan      html  css  js  c++  java
  • Oracle中列转行的2种方法.

    列转行

    主要讨论sys_connect_by_path的使用方法。



    1
    、带层次关系

    SQL> create table dept(deptno number,deptname varchar2(20),mgrno number);

    Table created.

    SQL> insert into dept values(1,'总公司',null);

    1 row created.

    SQL> insert into dept values(2,'浙江分公司',1);

    1 row created.

    SQL> insert into dept values(3,'杭州分公司',2);

    1 row created.

    SQL> commit;

    Commit complete.

    SQL> select max(substr(sys_connect_by_path(deptname,','),2)) from dept connect by prior deptno=mgrno;

    MAX(SUBSTR(SYS_CONNECT_BY_PATH(DEPTNAME,','),2))
    --------------------------------------------------------------------------------
    总 公司,浙江分公司,杭州分公司

    2、行列转换
    如把一个表的所有列连成一行,用逗号分隔:

    SQL> select max(substr(sys_connect_by_path(column_name,','),2))
    from (select column_name,rownum rn from user_tab_columns where table_name ='DEPT')
    start with rn=1 connect by rn=rownum ;

    MAX(SUBSTR(SYS_CONNECT_BY_PATH(COLUMN_NAME,','),2))
    --------------------------------------------------------------------------------
    DEPTNO,DEPTNAME,MGRNO

     

    3、ListAgg(Oracle 11g)

    SQL> select deptno,

      2         listagg( ename, '; ' )

      3         within group

      4         (order by ename) enames

      5    from emp

      6   group by deptno

      7   order by deptno

      8  /

        DEPTNO ENAMES

    ---------- --------------------

            10 CLARK; KING; MILLER

            20 ADAMS; FORD; JONES;

               SCOTT; SMITH

            30 ALLEN; BLAKE;

               JAMES; MARTIN;

               TURNER; WARD

     

     

     

    魔兽就是毒瘤,大家千万不要玩。
  • 相关阅读:
    【应用】Linux内存调试工具:valgrind
    Python UnboundLocalError: local variable 'xxx' referenced before assignment 解决方法
    MYSQL连接时错误码2059解决办法
    Python encode()、decode()方法详解
    genymotion自动化使用
    论文数据集
    Native Apps、Web Apps和Hybrid Apps
    C# 中如何进行私有(private)函数测试
    Windows10 计划任务开始失败
    如果系统盘后面是恢复盘,如何扩充系统盘
  • 原文地址:https://www.cnblogs.com/tracy/p/1712496.html
Copyright © 2011-2022 走看看