考虑到后面输出的顺序不变,所以最终查找是在原表中,然后在满足条件的基础上输出结果。
1、考虑到会涉及排名,首先可以想到使用开窗,此处使用row_number
select first_name, row_number() over(order by first_name) as ranking from employees
2、在排名中选择ranking为奇数的项
select
first_name
from (
select
first_name,
row_number() over(order by first_name) as ranking
from employees
) as t
where t.ranking & 1 # 也可以使用 where t.ranking % 2 = 13、以2作为筛选条件,从employees表中选出结果
select
first_name
from employees
where first_name in (
select
first_name
from (
select
first_name,
row_number() over(order by first_name) as ranking
from employees
) as t
where t.ranking & 1)


京公网安备 11010502036488号