答案代码是:
SELECT e.name
FROM employees e
JOIN
(SELECT name, DENSE_RANK() OVER(ORDER BY name) AS num FROM employees) AS t
ON e.name = t.name
WHERE t.num & 1 = 1;
最后的WHERE t.num &
1
=
1
;刚开始有点懵😳查询后了解是位运算:
与& 转化为二进制之后,两个位都为1时,结果才为1,例如:3&5 即 0000 0011& 0000 0101 = 0000 0001,因此 3&5 的值得1。