当前位置: 代码迷 >> Oracle管理 >> 请高手指教一个START WITH CONNECT BY 的有关问题
  详细解决方案

请高手指教一个START WITH CONNECT BY 的有关问题

热度:75   发布时间:2016-04-24 04:19:35.0
请高手指教一个START WITH CONNECT BY 的问题?
我写了如下语句

   SELECT  DISTINCT   a.AUT_STATNEW
              FROM R5AUTH a                         
              where AUT_ENTITY='E'   
             START WITH  a.AUT_STATUS ='A'
             CONNECT BY a.AUT_STATUS = PRIOR a.AUT_STATNEW   

问题1.代码运行的结果是 D,C,B (A得到B,B-C,C-D) 我现在只想得到 D就可以了,语句改怎么改?
    2.这个语句是先执行 where后面的条件还是 先START WITH   CONNECT BY 然后在执行where后面的 条件?
------解决方案--------------------
SELECT  DISTINCT   a.AUT_STATNEW
              FROM R5AUTH a                         
              where AUT_ENTITY='E'
              AND  CONNECT_BY_ISLEAF= a.AUT_STATUS 
             START WITH  a.AUT_STATUS ='A'
             CONNECT BY a.AUT_STATUS = PRIOR a.AUT_STATNEW
   



------解决方案--------------------
引用:
Quote: 引用:

SELECT  DISTINCT   a.AUT_STATNEW
              FROM R5AUTH a                         
              where AUT_ENTITY='E'
              AND  CONNECT_BY_ISLEAF= a.AUT_STATUS 
             START WITH  a.AUT_STATUS ='A'
             CONNECT BY a.AUT_STATUS = PRIOR a.AUT_STATNEW
   
是这样吗?报错提示无用的数字? 即使把 a.AUT_STATUS改成1的话出来的是 数值C 不是数字D 

那就是你的CONNECT BY a.AUT_STATUS = PRIOR a.AUT_STATNEW这句有问题,把表数据贴出来看看。
  相关解决方案