/*不是同一机构,查询是否为下级关系*/        
            sprintf( temp_str , " SELECT COUNT(*) "
                                "FROM ( SELECT DISTINCT inst_id FROM tb_inst_id CONNECT BY NOCYCLE PRIOR inst_id= up_inst_id START WITH up_inst_id= '%s' ) "
                                "WHERE inst_id = '%s'", 
                                inst_id,qry_inst_id );各位大侠给我讲哈这个语句的构成了,看不懂得了,CONNECT BY NOCYCLE PRIOR START WITH 是 什么意思了?
   感谢!!!

解决方案 »

  1.   

    START WITH 代表你要开始遍历的的节点!
    CONNECT BY PRIOR 是标示父子关系的对应!CONNECT BY NOCYCLE PRIOR inst_id= up_inst_id  --inst_id和up_inst_id分别是子节点和父节点
    START WITH up_inst_id= '%s'  --从up_inst_id= '%s'这个开始做为父节点(原始节点)
      

  2.   

    那这个查询的最终会产生一个什么呢?最基本的SQL语句,From后面应该是一个表,这个怎么又是一个SQL语句,这是不是很清楚。
      

  3.   

    from 后面跟一个查询语句,这叫嵌套查询