对于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');
我的思路:
set @rank = 0;select first_name,@rank:=@rank+1 as rankfrom employeesorder by first_name
语雀内容
奇数用%取余
where @rank %2 =1
但是报错
套一层再筛选
set @rank = 0;select first_namefrom(select first_name,@rank:=@rank+1 as rankfrom employeesorder by first_name)as rwhere rank %2 =1order by first_name desc

ac过不去 抄个答案
SELECT e1.first_name FROM(SELECT e2.first_name,(SELECT COUNT(*) FROM employees AS e3WHERE e3.first_name <= e2.first_name)AS rowid FROM employees AS e2) AS e1WHERE e1.rowid % 2 = 1
