对于employees表中,输出first_name排名(按first_name升序排序)为奇数的first_name

    1. CREATE TABLE `employees` (
    2. `emp_no` int(11) NOT NULL,
    3. `birth_date` date NOT NULL,
    4. `first_name` varchar(14) NOT NULL,
    5. `last_name` varchar(16) NOT NULL,
    6. `gender` char(1) NOT NULL,
    7. `hire_date` date NOT NULL,
    8. PRIMARY KEY (`emp_no`));

    如,输入为:

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

    我的思路:

    1. set @rank = 0;
    2. select first_name,@rank:=@rank+1 as rank
    3. from employees
    4. order by first_name

    语雀内容
    奇数用%取余
    where @rank %2 =1
    但是报错
    图片.png
    套一层再筛选

    1. set @rank = 0;
    2. select first_name
    3. from
    4. (
    5. select first_name,@rank:=@rank+1 as rank
    6. from employees
    7. order by first_name
    8. )as r
    9. where rank %2 =1
    10. order by first_name desc

    图片.png
    ac过不去 抄个答案

    1. SELECT e1.first_name FROM
    2. (SELECT e2.first_name,
    3. (SELECT COUNT(*) FROM employees AS e3
    4. WHERE e3.first_name <= e2.first_name)
    5. AS rowid FROM employees AS e2) AS e1
    6. WHERE e1.rowid % 2 = 1