zoukankan      html  css  js  c++  java
  • oracle 树形查询

    oracle里面实现树形查询比mssql要轻松的多:

    今天学习的 记录下:

    例子:

    建表

    Sql代码 复制代码 收藏代码
    1. create table Dept(    
    2. DepartNO varchar2(10),   
    3. DepartName varchar2(20),   
    4. TopNo varchar2(10)   
    5. );    
    create table Dept( 
    DepartNO varchar2(10),
    DepartName varchar2(20),
    TopNo varchar2(10)
    );  

      初始化:

    Java代码 复制代码 收藏代码
    1.  insert into Dept values('001',' 董事会','0'); commit;   
    2.  insert into Dept values('002','总裁办 ','001'); commit;   
    3.  insert into Dept values('003','财务部 ','001'); commit;    
    4. insert into Dept values('004','市场部 ','002'); commit;    
    5. insert into Dept values('005','公关部 ','002'); commit;    
    6. insert into Dept values('006','销售部 ','002'); commit;    
    7. insert into Dept values('007','分销处 ','006'); commit;    
    8. insert into Dept values('008','业务拓展处','004'); commit;    
    9. insert into Dept values('009','销售科','007'); commit;   
     insert into Dept values('001',' 董事会','0'); commit;
     insert into Dept values('002','总裁办 ','001'); commit;
     insert into Dept values('003','财务部 ','001'); commit; 
    insert into Dept values('004','市场部 ','002'); commit; 
    insert into Dept values('005','公关部 ','002'); commit; 
    insert into Dept values('006','销售部 ','002'); commit; 
    insert into Dept values('007','分销处 ','006'); commit; 
    insert into Dept values('008','业务拓展处','004'); commit; 
    insert into Dept values('009','销售科','007'); commit; 

    根据输入节点向下查询(包括自身节点信息)

    Sql代码 复制代码 收藏代码
    1. select distinct departno,departname,level    
    2. from dept    
    3. connect by prior topno=departno    
    4. start with departno='005';  
    select distinct departno,departname,level 
    from dept 
    connect by prior topno=departno 
    start with departno='005';

      

    根据输入节点向下查询(不包括自身节点信息)

    Java代码 复制代码 收藏代码
    1. select distinct departno,departname,level    
    2. from dept    
    3. connect by prior topno=departno    
    4. start with topno='005';    
    select distinct departno,departname,level 
    from dept 
    connect by prior topno=departno 
    start with topno='005';  
    

      

    根据输入节点向上查询 

    Sql代码 复制代码 收藏代码
    1. select distinct departno,departname,level  
    2. from dept    
    3. connect by prior departno =topno    
    4. start with departno='005';   
  • 相关阅读:
    Go语言的运算符
    Nginx基本安全优化
    在LNMP环境中部署一个blog服务程序
    PHP缓存加速器
    Go语言基础语法
    Go语言数据类型
    Go语言变量
    Go语言常量
    Go语言结构
    LNMP之PHP安装
  • 原文地址:https://www.cnblogs.com/lidj/p/3298450.html
Copyright © 2011-2022 走看看