牛客网数据库SQL实战15—— 查找employees表
题目描述
查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
输入描述:
无
输出描述:
emp_no | birth_date | first_name | last_name | gender | hire_date |
---|---|---|---|---|---|
10011 | 1953-11-07 | Mary | Sluis | F | 1990-01-22 |
10005 | 1955-01-21 | Kyoichi | Maliniak | M | 1989-09-12 |
10007 | 1957-05-23 | Tzvetan | Zielinski | F | 1989-02-10 |
10003 | 1959-12-03 | Parto | Bamford | M | 1986-08-28 |
10001 | 1953-09-02 | Georgi | Facello | M | 1986-06-26 |
10009 | 1952-04-19 | Sumant | Peac | F | 1985-02-18 |
我的解答
select *
from employees
where emp_no%2 = 1
and last_name != 'Mary'
order by hire_date desc
此题思路如下:
- 员工号为奇数,则emp_no取余应为1
- last_name不为Mary,用‘!=’表示
- 根据hire_date逆序排列,用desc
我觉得最好的答案
在机器中,位运算才是最厉害的
select *
from employees e
where e.emp_no & 1 = 1 and e.last_name != 'Mary'
ORDER BY e.hire_date desc