数据库SQL实战 --60.对于employees表中,给出奇数行的first_name

题目描述

对于employees表中,给出奇数行的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`));

输出格式:
first_name
Georgi
Chirstian
Anneke
Tzvetan
Saniya
Mary

解决思路

SELECT e1.first_name FROM
employees e1
WHERE
(SELECT count(*) FROM employees e2
WHERE e1.first_name <=e2.first_name)%2=1;
  • first_name是按降序在排列,此时count(e2.*) where e2.fisrt_name>=e1.first_name 是e1的排名次序,并限制次序为奇数

猜你喜欢

转载自blog.csdn.net/ouzhuangzhuang/article/details/89919350