题解 | #对于employees表中,给出奇数行的first_name#
对于employees表中,给出奇数行的first_name
http://www.nowcoder.com/practice/e3cf1171f6cc426bac85fd4ffa786594
错误写法
select first_name
from employees
where first_name in
(select first_name,rank()over(order by first_name) as flag from employees where flag%2=1)
分步骤写法
#先排名
#查询出排名为奇数的姓名
#最外层查询,将姓名输出
select e.first_name from
employees e
where e.first_name in
(select ra.first_name from
(select first_name,rank() over(order by first_name) as flag from employees ) as ra
where ra.flag%2=1
)
表连接写法
select e1.first_name from
employees e1
join (select first_name,rank() over(order by first_name) as r from employees)
e2
on e1.first_name = e2.first_name
where e2.r % 2 = 1