方法一:
select
e.first_name first
from employees e
join
(select
first_name,
row_number()over(order by first_name) posn
from employees) e1
on e.first_name=e1.first_name
where e1.posn%2=1
本题思路如下:
1.用row_number()over()建立窗口函数用于排序,输出first_name、posn作为表e1;
2.第一条作为子查询,外面再套一层查询输出e.first_name first,用同一个表连接注意别名,连接键为first_name,通过where e1.posn%2=1筛选奇数行(需要涉及到对同一个表的重复使,且要找到奇数位置的行)。
总之有3个知识点:排序窗口函数、子查询、筛选奇数 (取余运算符%)。