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';   
  • 相关阅读:
    [Dijkstra+堆优化]
    沈阳市 全国 沈阳市社会保险经办机构 信息查询 办保险用
    MS SQL 启用标识插入
    DataGridView导出到Word
    sql生成一个日期表
    精通BIRT:Eclipse商务智能报表工具开发实践指南
    BIRT-商务智能报表工具开发案例指南
    网页状态码
    javascript变量的作用域
    KAL1 LINUX 官方文档之工具---kali工具
  • 原文地址:https://www.cnblogs.com/lidj/p/3298450.html
Copyright © 2011-2022 走看看