热线电话:13121318867

登录
2020-06-29 阅读量: 1112
Mysql面试题:employees表中,查询出奇数行的first_name

问题:对于employees表中,输出first_name排名(按first_name升序排序)为奇数的first_name
##建表语句

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`));

## 插入数据:

INSERT INTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26');
INSERT INTO employees VALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21');
INSERT INTO employees VALUES(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12');
INSERT INTO employees VALUES(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02');

执行结果:

image.png

来源:牛客网

官方解答:

SELECT e1.first_name FROM

employees e1WHERE (SELECT count(*) FROM employees e2 WHERE e1.first_name <=e2.first_name)%2=1;

自己写的:

select * from (select first_name,row_number()over() 排名 from employees order by first_name)t where 排名%2=1;

大家还有什么写法可以留言交流~~

19.1817
5
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子