就是根据以前xiaofenguser大虾提供的连接,下载了他的代码。
就是先判断该单位是否还有下级单位,如果有,一直递归查询下去,直到
最后一级。

解决方案 »

  1.   

    to : nairc(一蓑烟雨任平生) 
       你所谓的递归是SQL语句的递归,也就是执行很多条SQL语句达到你的目的吗?为什么不直接用Oracle提供的递归语句, connect by + start with ?
      

  2.   

    对,是先判断字段,如果有下级单位,然后接着用sql语句查询。Lastdrop 可以提供详细点的介绍吗?谢谢!
      

  3.   

    我不知道你的表结构,给你个例子,可以直接将你的表里的记录排列成树形。 SELECT level,parent_id,child_id FROM yourtable START WITH parent_id=1 
        CONNECT BY  PRIOR child_id=parent_id  ;其中parent_id相当于上级单位的id,child_id是下级单位的id,level是Oracle提供的,你可以利用来区分当前记录是位于第几级。START WITH parent_id=1 中的1 可以是任意指定值。
      

  4.   

    表的字段如下:  DeptId  DeptName UpperDeptId  HasSubDept 
      

  5.   

    SELECT level,DeptId, DeptName, UpperDeptId,HasSubDept FROM yourtable START WITH deptid=1 CONNECT BY  PRIOR UpperDeptId =deptid;level = 1 的就是最上级的单位。