This is the basic query that gets everything in one go:
select employee_id, first_name, last_name,
case
when level = 1 then 'President'
when level = 2 then '1st line manager'
when level = 3 then '2nd line manager'
when connect_by_isleaf = 1 then 'Developer'
end as employee_type
from employees
start with manager_id is null
connect by prior employee_id = manager_id
The LEVEL
pseudo column available in a connect by
query defines the distance from the start (which is defined by start with
). So the president has level = 1
If you just want 2nd line managers, you can simply add where level = 3
to the statement. To get 1st line manager use where level = 2