ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sys_connect_by_path的两种用法

sys_connect_by_path的两种用法

原创 Linux操作系统 作者:space6212 时间:2019-02-19 22:03:05 0 删除 编辑

本文主要讨论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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/231499/viewspace-63788/,如需转载,请注明出处,否则将追究法律责任。

下一篇: oracle树的裁剪
请登录后发表评论 登录
全部评论

注册时间:2005-01-25

  • 博文量
    245
  • 访问量
    168508