文章目录
-
- SQL1:查找最晚入职员工的所有信息
- SQL2:查找入职时间较晚(排名倒数第三)的员工所有信息
- SQL3:领导的薪水
- SQL4:查找所有已经分配部门的员工
- SQL5:查找所有已经分配 + 未分配 部门的员工
- SQL6:查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序(请注意,一个员工可能有多次涨薪的情况)
- SQL7:查找薪水变动超过15次的员工号emp_no以及其对应的变动次数t
- SQL8:找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
- SQL9:获取所有部门当前(dept_manager.to_date='9999-01-01')manager的当前(salaries.to_date='9999-01-01')薪水情况,给出dept_no, emp_no以及salary(请注意,同一个人可能有多条薪水情况记录)
- SQL10:获取所有非manager的员工emp_no
题库地址: https://www.nowcoder.com/activity/oj
SQL1:查找最晚入职员工的所有信息
使用子查询
select * from employees
where hire_date =
(select max(hire_date) from employees)
SQL2:查找入职时间较晚(排名倒数第三)的员工所有信息
select * from employees
where hire_date = (
select distinct hire_date from employees order by hire_date desc limit 2,1
)
分析:
distinct 排除了入职时间重复的行
order by hire_date desc 根据入职日期降序,入职晚的排在前面
limit 2,1 第三页,每页1行
limit
- 如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。
- SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 ,从第6行往后显示10个
SQL3:领导的薪水
查找各个部门当前(dept_manager.to_date=‘9999-01-01’)领导的当前(salaries.to_date=‘9999-01-01’)薪水详情以及其对应部门编号dept_no
(注:请以salari