换个写法就是了
select .. from (select ... from tab1,tab2 where ...) start with .. connect by ...

解决方案 »

  1.   

    我使用
    SELECT   "MONCENTERID",   
             "PERSID",           
    FROM (SELECT 
             "GRM_BASE_MONCETER"."MONCENTERID",   
             "GRM_BASE_MONCETER"."PARENTID",   
             "GRM_BASE_PERS"."PERSID",   
             "GRM_BASE_PERS"."NAME",   
             "GRM_BASE_PERS"."GENDER",   
             "GRM_BASE_PERS"."FORMAT"  
     FROM GRM_BASE_PERS , GRM_BASE_MONCENTER WHERE "GRM_BASE_MONCETER"."MONCENTERID" = "GRM_BASE_PERSID"."PARENTID")
     START WITH PARENTID = '11111111' CONNCET BY PRIOR PARENTID = MONCENTERID在执行此语句时,提示找不到 connect by 的子句
      

  2.   

    我开始时创建了视图的,但oracle在执行start with语句时,还是按多表连接来处理的
      

  3.   

    不过依照你这个查询,也可以改为:
    select ... from 
    (SELECT   MONCENTERID  FROM GRM_BASE_MONCENTER START WITH PARENTID = '11111111' CONNCET BY PRIOR PARENTID = MONCENTERID) a,
    GRM_BASE_PERS b
    where a.MONCENTERID=b.PARENTID;
    来实现啊
      

  4.   

    哈~, zmgowin(隐者(龙祖宗)) 的方法不错,不过,你的方法里少了一个条件 临时数据集里少了distinct ,马上给分