select regexp_substr (h.entity,'Manager~([^~]*)~' ,1,1,'',1) as Manager_entity_code ,regexp_substr (h.entity,'Manager~([^~]*)~([^,]*)' ,1,1,'',2) as Manager_entity_name ,regexp_substr (h.entity,'Team-Lead~([^~]*)~' ,1,1,'',1) as Team_Lead_entity_code ,regexp_substr (h.entity,'Team-Lead~([^~]*)~([^,]*)',1,1,'',2) as Team_Lead_entity_name ,regexp_substr (h.entity,'Developer~([^~]*)~' ,1,1,'',1) as Developer_entity_code ,regexp_substr (h.entity,'Developer~([^~]*)~([^,]*)',1,1,'',2) as Developer_entity_name ,c.client_name from (select sys_connect_by_path (entity_role || '~' || entity_code || '~' || entity_name,',') as entity ,entity_code from hierarchical_table where connect_by_isleaf = 1 connect by parent_entity_code = prior entity_code start with entity_code = 200 ) h join client_table c on c.entity_code = h.entity_code order by Manager_entity_code ,Team_Lead_entity_code ,Developer_entity_code ;
+---------------------+---------------------+-----------------------+-----------------------+-----------------------+-----------------------+-------------+ | MANAGER_ENTITY_CODE | MANAGER_ENTITY_NAME | TEAM_LEAD_ENTITY_CODE | TEAM_LEAD_ENTITY_NAME | DEVELOPER_ENTITY_CODE | DEVELOPER_ENTITY_NAME | CLIENT_NAME | +---------------------+---------------------+-----------------------+-----------------------+-----------------------+-----------------------+-------------+ | 100 | Mack | 200 | Shail | 500 | Neha | Tata | | 100 | Mack | 300 | Jack | 600 | Rocky | Rel | | 100 | Mack | 300 | Jack | 600 | Rocky | Voda | | 100 | Mack | 300 | Jack | 600 | Rocky | Airtel | +---------------------+---------------------+-----------------------+-----------------------+-----------------------+-----------------------+-------------+
For start with entity_code = 600
+---------------------+---------------------+-----------------------+-----------------------+-----------------------+-----------------------+-------------+ | MANAGER_ENTITY_CODE | MANAGER_ENTITY_NAME | TEAM_LEAD_ENTITY_CODE | TEAM_LEAD_ENTITY_NAME | DEVELOPER_ENTITY_CODE | DEVELOPER_ENTITY_NAME | CLIENT_NAME | +---------------------+---------------------+-----------------------+-----------------------+-----------------------+-----------------------+-------------+ | (null) | (null) | (null) | (null) | 600 | Rocky | Airtel | | (null) | (null) | (null) | (null) | 600 | Rocky | Voda | | (null) | (null) | (null) | (null) | 600 | Rocky | Rel | +---------------------+---------------------+-----------------------+-----------------------+-----------------------+-----------------------+-------------+