select * from (
select ZZJGDM DM,ZZJGMC MC,SJJGDM SJ FROM T_ZZJG
WHERE ZZJGDM IN (SELECT ZZJGDM FROM FROM T_ZZJG T
   CONNECT BY PRIOR SJJGDM=ZZJGDM
   START WITH EXISTS (SELECT 1 FROM T_RY WHERE ZZJGDM=T.ZZJGDM))
UNION ALL
SELECT RYDM DM,RYMC MC,ZZJGDM SJ FROM T_RY
)
CONNECT BY PRIOR DM=SJ
START WITH SJ IS NULL
ORDER SIBLINGS BY DM

解决方案 »

  1.   

     类似这种Tree 树结构,有人员节点的才展示出来,例如图中的双桥分局下没有人员就不要展示。钢城分局下 的 滦阳派出所 下没有人员不要展示,滦兴派出所(1)下有一个人员就需要展示。     好像表述的很罗嗦。 
      

  2.   

    可以考虑将IN改为EXISTS,
    可以具体看一下执行计划,再确定如何优化
    优化的空间应该不大了
      

  3.   

    这个我理解了,但是要正常显示这棵树,SQL语句要返回什么样的结果呢?
    能不能描述一下,或者举个例子