题目:查找employees表
代码:
SELECT * FROM employees AS em
WHERE emp_no & 1
# WHERE emp_no % 2 = 1
AND em.last_name != 'Mary'
ORDER BY hire_date DESC
判断奇数:按位与 1,即&1。
1的二进制是0001,二进制奇数最后一位一定是1。与运算符:1 & 1 = 1, 1 & 0 = 0, 0 & 1 = 0, 0 & 0 = 0;所以可以保证最后一位是奇数。
判断偶数:数字 =(数字>>1)<<1。
先右移再左移后,判断与原数是否相等。二进制偶数最后一位一定是0,所以右移把0移出去,再左移把0移回来,与原数相等。而奇数最后一位是1,右移把1移出去,再左移把0移回来,与原数不相等。
本文解析了如何使用SQL查询employees表,通过位运算筛选出emp_no为奇数的记录,并排除last_name为'Mary'的员工,同时按hire_date降序排列。
1333

被折叠的 条评论
为什么被折叠?



