SQL> SELECT DEPTNO, SUBSTR(MAX(SYS_CONNECT_BY_PATH(ENAME, '/')), 2) PATH 2 FROM ( 3 SELECT ENAME, DEPTNO, ROW_NUMBER() OVER (PARTITION BY DEPTNO ORDER BY EMPNO) RN 4 FROM EMP 5 ) 6 START WITH RN = 1 7 CONNECT BY PRIOR RN = RN -1 8 AND PRIOR DEPTNO = DEPTNO 9 GROUP BY DEPTNO; DEPTNO PATH ------ -------------------------------------------------------------------------------- 30 ALLEN/WARD/MARTIN/BLAKE/TURNER/JAMES 20 SMITH/JONES/SCOTT/ADAMS/FORD 10 CLARK/KING/MILLER
SQL> WITH T_10 AS 2 ( 3 SELECT 1 AS A FROM DUAL 4 UNION ALL 5 SELECT 2 AS A FROM DUAL 6 UNION ALL 7 SELECT 3 AS A FROM DUAL 8 UNION ALL 9 SELECT 4 AS A FROM DUAL 10 UNION ALL 11 SELECT 5 AS A FROM DUAL 12 UNION ALL 13 SELECT 6 AS A FROM DUAL 14 UNION ALL 15 SELECT 7 AS A FROM DUAL 16 UNION ALL 17 SELECT 8 AS A FROM DUAL 18 UNION ALL 19 SELECT 9 AS A FROM DUAL 20 UNION ALL 21 SELECT 10 AS A FROM DUAL 22 ) 23 SELECT SUBSTR(SYS_CONNECT_BY_PATH(A, ', '), 2) PATH 24 FROM ( 25 SELECT ROWNUM RN, A FROM T_10 26 ) 27 START WITH RN = 1 28 CONNECT BY PRIOR RN = RN - 1; PATH -------------------------------------------------------------------------------- 1 1, 2 1, 2, 3 1, 2, 3, 4 1, 2, 3, 4, 5 1, 2, 3, 4, 5, 6 1, 2, 3, 4, 5, 6, 7 1, 2, 3, 4, 5, 6, 7, 8 1, 2, 3, 4, 5, 6, 7, 8, 9 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 10 rows selected