这个我我现在用的SQL,觉得太长了,而且感觉效率不会太高。
有改进的办法吗?SELECT MAX(ID) FROM 
 ( 
    SELECT LTRIM(SYS_CONNECT_BY_PATH(ID,','),',') AS ID FROM 
    (
SELECT ID,ROWNUM RN FROM app_Tree WHERE FatherID=11
    )
    START WITH RN=1 CONNECT BY PRIOR RN=RN-1
 )

解决方案 »

  1.   

    不知道是不是你想要的效果   我用emp表使用游标做了一下  你看看SQL> DECLARE
      2    v VARCHAR(255);
      3    CURSOR emp_cursor IS
      4           select empno from emp;
      5  BEGIN
      6    FOR cur IN emp_cursor
      7    LOOP
      8          v := v || to_char(cur.empno) || '#' ;
      9  
     10    END LOOP;
     11   DBMS_OUTPUT.PUT_LINE(v);
     12  END;
     13  /
    7369#7499#7521#7566#7654#7698#7782#7788#7839#7844#7876#7900#7902#7934#PL/SQL 过程被成功完成
      

  2.   

    是我想要的结果。
    我这个最终要作为一个字段存储到某个视图里面。
    所以最好是一句sql实现SELECT MAX(SYS_CONNECT_BY_PATH(FatherID,'#')) AS ID 
    FROM
    (
        SELECT FatherID,ROWNUM RN FROM app_Tree WHERE FatherID=11
    )
    START WITH RN=1 CONNECT BY PRIOR RN=RN-1