也行,但好像更长了之外,效率上也没啥区别

select avg(ss.salary)
from salaries ss 
left join (select max(salary) salary from salaries where to_date='9999-01-01'
            union
            select min(salary) salary from salaries where to_date='9999-01-01') t
on ss.salary=t.salary
where t.salary is null and ss.to_date='9999-01-01'