select * from employees
where hire_date=(select max(hire_date) from employees WHERE
                 hire_date<(select MAx(hire_date) from employees where
                           hire_date<(select max(hire_date)from employees)))

1.看了有使用distinct去重后order by 排名提取,个人觉得如果相同入职日期不同员工,这样操作会失去信息,因此考虑使用嵌套子查询来解决。 2.使用select max(hire_date) from employees提取最晚入职日期 3.嵌套select max(hire_date) from rmployees where hire_date<(select max(hire_date) from employees),得出第二晚入职日期 4.再次嵌套 select max(hire_date) from employees where hire_date <(select max(hire_date) from employees where hire_date<(select max(hire_date) from emloyees))

/* 如果是查询最早入职呢?*/ 1.select * from emlpoyess where hire_date=(select min(hire_date) from employees); /查询第二早入职呢?/ 方法也是一样,跟第二晚入职大同小异