处理以下查询的有效方法?在 SQLServer 或 PostgreSql 中(自连接)

Efficient way to handle below query? in SQLServer or PostgreSql (Self join)

我有一名员工table如下

我需要 select employee_id, manager_id, 结果。结果应为 true 或 false 取决于以下条件。

  1. 如果员工是某人的经理则为真
  2. 如果员工有经理则为真

我想到了一个查询,但我需要知道是否还有其他更好的方法。 这是我的查询

with manager  as
(
select distinct manager_id from employee where manager_id is not null
)
select 
e.employee_id, e.manager_id , m.manager_id, 
case when e.manager_id is not null then true
     when m.manager_id is not null then true 
     else false
end as Result
from employee e left join manager m  on e.employee_id = m.manager_id 

结果应该是这样的

可能是这样的:

select
  e.employee_id,
  e.manager_id,
  (
    e.manager_id is not null
    or
    exists(select 1 from employee m where m.manager_id=e.employee_id)
  ) as result
from employee e;