Heim > Datenbank > MySQL-Tutorial > Oracle描述层次查询(hierarchical query)

Oracle描述层次查询(hierarchical query)

WBOY
Freigeben: 2016-06-07 15:15:23
Original
1373 Leute haben es durchsucht

欢迎进入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)

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage