with tmp as( select tb_menu.*, level lev from tb_menu start with parent is null connect by parent = prior id)
SELECT pid, LTRIM (MAX (SYS_CONNECT_BY_PATH (by_path, ',')), ',') FROM (SELECT pid, ROW_NUMBER () OVER (PARTITION BY pid ORDER BY pid) by_pid, ROW_NUMBER () OVER (ORDER BY pid) + pid AS rn, NAME AS by_path FROM test1 ORDER BY 1) START WITH by_pid = 1CONNECT BY rn - 1 = PRIOR rn GROUP BY pid ORDER BY =1