题目描述

有一个员工表 employees 简况如下:

查找employees表所有emp_no为奇数的记录 - 图1

建表语句如下:

  1. CREATE TABLE `employees` (
  2. `emp_no` int(11) NOT NULL,
  3. `birth_date` date NOT NULL,
  4. `first_name` varchar(14) NOT NULL,
  5. `last_name` varchar(16) NOT NULL,
  6. `gender` char(1) NOT NULL,
  7. `hire_date` date NOT NULL,
  8. PRIMARY KEY (`emp_no`));

请你查找 employees 表所有 emp_no 为奇数,且 last_name 不为 Mary 的员工信息,并按照 hire_date 逆序及逆行排列,上述案例查询结果如下:

查找employees表所有emp_no为奇数的记录 - 图2

答案解析

本题的重点是考查如何筛选 emp_no 为奇数的记录,我们可以使用两种方式:

  1. 使用 % 取模

SQL 语句如下:

  1. SELECT * from employees
  2. WHERE emp_no % 2 = 1 AND last_name != 'Mary'
  3. ORDER BY hire_date DESC;
  1. 使用 MOD() 函数

SQL 语句如下:

  1. SELECT * from employees
  2. WHERE MOD(emp_no,2) = 1 AND last_name != 'Mary'
  3. ORDER BY hire_date DESC;