题解 | #给出e表中排名为奇数行的first_name#
给出employees表中排名为奇数行的first_name
https://www.nowcoder.com/practice/e3cf1171f6cc426bac85fd4ffa786594
select t1.first_name from (select *, row_number() over(order by first_name asc) as f_rank from employees order by emp_no asc) t1 where f_rank % 2 != 0
先通过窗口函数,按first_name升序排序编号f_rank,select里的执行执行完后,再执行order by根据emp_no升序排序,达“按原序列顺序”的要求。
上面的结果作为一个子表(order by后不能再使用where了),再套一层使用where,筛选出first_name排序为奇数的记录
查看2道真题和解析
百度公司氛围 554人发布