牛客网数据库SQL实战15—— 查找employees表

牛客网数据库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

此题思路如下:

  1. 员工号为奇数,则emp_no取余应为1
  2. last_name不为Mary,用‘!=’表示
  3. 根据hire_date逆序排列,用desc

我觉得最好的答案

在机器中,位运算才是最厉害的

select *
from employees e
where e.emp_no & 1 = 1 and e.last_name != 'Mary'
ORDER BY e.hire_date desc 
发布了175 篇原创文章 · 获赞 58 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/sunbocong/article/details/105523550