知识点

  1. 该题的意思是先按照first_name升序排序,然后取序号为奇数的行,最后输出的结果要按照原表的顺序
  2. 因此使用窗口函数排序内连接到原表里面,选择序号为奇数的就行

代码

select e.first_name
from employees as e
join (
    select first_name,
    row_number() over (order by first_name) as rk_name
    from employees) as r
on e.first_name = r.first_name
where r.rk_name % 2 = 1