这个我我现在用的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
)
有改进的办法吗?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
)
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 过程被成功完成
我这个最终要作为一个字段存储到某个视图里面。
所以最好是一句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