ホームページ > データベース > mysql チュートリアル > Oracle描述层次查询(hierarchical query)

Oracle描述层次查询(hierarchical query)

WBOY
リリース: 2016-06-07 15:15:23
オリジナル
1358 人が閲覧しました

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 有关Oracle描述层次查询(hierarchical query)的详细情况,先看一张图: 正确答案:BD A错误,树的遍历可以从上至下,或从下至上 B正确 C正确,可以删除某个某个遍历的分支 例: 删除scott的分支 S

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

    有关Oracle描述层次查询(hierarchical query)的详细情况,先看一张图:

Oracle描述层次查询(hierarchical query)

 
    正确答案:BD
    A错误,树的遍历可以从上至下,或从下至上
    B正确
    C正确,可以删除某个某个遍历的分支
    例: 删除scott的分支
    SQL> select empno,ename,level,lpad('',2*level-1)||sys_connect_by_path(ename,'/') path from emp
    2  start with empno=7566
    3  connect by priorempno=mgr and ename!='SCOTT';
    D错误
    SQL> select empno,ename,level,lpad('',2*level-1)||sys_connect_by_path(ename,'/') path from emp
    2  where ename!='SCOTT'
    3  start with empno=7566
    4  connect by priorempno=mgr;
    可以使用条件限制输出。
    正确答案BC
    EMPNO ENAME          LEVEL PATH
    ---------- ---------- ----------------------------------------
    7566 JONES              1  /JONES
    7876 ADAMS              3     /JONES/SCOTT/ADAMS
    7902 FORD               2   /JONES/FORD
    7369 SMITH              3     /JONES/FORD/SMITH
    EMPNO ENAME          LEVEL PATH
    ---------- ---------- ----------------------------------------
    7566 JONES              1  /JONES
    7902 FORD               2   /JONES/FORD
    7369 SMITH              3     /JONES/FORD/SMITH
    层次查询知识补充:
    [html]
    gyj@MYDB> create table test(id number,name varchar2(10),fid number);
    Table created.
    gyj@MYDB> insert into test values(1,'A',2);
    1 row created.
    gyj@MYDB> insert into test values(2,'B',3);
    1 row created.
    gyj@MYDB> insert into test values(3,'C',4);
    1 row created.
    gyj@MYDB> insert into test values(4,'D',null);
    1 row created.
    gyj@MYDB> commit;
    Commit complete.
    正向查找,对于每个遍历,只查找第一行记录
    [html]
    gyj@MYDB> select distinct first_value(path) over(partition by id order by lev desc) from (
    2  select connect_by_root id id,level lev, sys_connect_by_path(name,'  ') path
    3   from test
    4   start with id in (select id from test)
    5   connect by id=prior fid);
    FIRST_VALUE(PATH)OVER(PARTITIONBYIDORDERBYLEVDESC)
    ---------------------------------------------------------------------------------------
    A  B  C  D
    B  C  D
    C  D
    D

[1] [2] 

Oracle描述层次查询(hierarchical query)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート