这道题目要求我们从员工表中查找出员工编号为奇数且姓氏不为“Mary”的员工信息,我们要做的事情如下:
1. 确定总体问题
我们需要从员工表中提取数据,应用条件过滤和排序,并按入职日期降序排列。
2. 分析关键问题
- 筛选奇数编号的员工:使用条件过滤筛选出员工编号为奇数的员工。
- 排除姓氏为“Mary”的员工:使用条件过滤排除姓氏为“Mary”的员工。
- 排序输出:按入职日期降序排列输出结果。
3. 解决每个关键问题的代码及讲解
步骤1:筛选奇数编号的员工
我们使用WHERE
子句筛选出员工编号为奇数的员工:
where
emp_no%2=1
emp_no % 2 = 1
:筛选出员工编号为奇数的员工:对二取模的余数为一即为奇数。
步骤2:排除姓氏为“Mary”的员工
我们在WHERE
子句中排除姓氏为“Mary”的员工:
and last_name != 'Mary'
last_name != 'Mary'
:排除姓氏为“Mary”的员工(也可以使用not like)。
步骤3:排序输出
我们使用ORDER BY
按入职日期降序排列输出结果:
order by
hire_date desc
ORDER BY hire_date DESC
:按入职日期降序排列。
完整代码
select
emp_no,
birth_date,
first_name,
last_name,
gender,
hire_date
from
employees
where
emp_no%2=1 and last_name != 'Mary'
order by
hire_date desc;