题解 | #对于employees表中,给出奇数行的first_name#
对于employees表中,给出奇数行的first_name
http://www.nowcoder.com/practice/e3cf1171f6cc426bac85fd4ffa786594
# 计算行号的方法 : 有多少个小于等于e2.first_name的记录的个数就是e2.first_name的行号 select e1.first_name from employees e1 where( select count(*) from employees e2 where e1.first_name>=e2.first_name )%2=1; # 1)为什么是>= 不是<= # 回答:因为题中说“按first_name升序排序”,如果是降序就是<=。 # 2)为什么没有order by # 回答:因为题中说了“输出时不用排序”,输出顺序应按原表顺序。 # 3)为什么不能用row_number() # 回答:因为row_number()会默认更改first_name排序。