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';   
  • 相关阅读:
    Android研究之游戏开发处理按键的响应
    C语言指针的初始化和赋值
    Cloudera CDH 5集群搭建(yum 方式)
    未将对象引用设置到对象的实例--可能出现的问题总结
    内存泄漏以及常见的解决方法
    都能看懂的嵌入式linux/android alsa_aplay alsa_amixer命令行使用方法
    Life is hard!
    EasyUI基础入门之Resiable(可缩放)
    Android -- Looper.prepare()和Looper.loop() —深入版
    vi 命令 使用方法
  • 原文地址:https://www.cnblogs.com/lidj/p/3298450.html
Copyright © 2011-2022 走看看