IN 条件(IN Conditions)是成员资格条件。它测试值或子查询列表中成员的值。

语法

  1. expr [ NOT ] IN ({ expression_list | subquery })
  2. |
  3. ( expr [, expr ]... ) [ NOT ] IN ( { expression_list [, expression_list ]... | subquery } )

IN 条件可以测试表达式是表达式列表或子查询的成员,或者多个表达式是表达式列表或子查询的成员。并且每个表达式列表中的表达式必须在数量和数据类型上与运算符 IN 左边的表达式匹配。

示例

IN 示例:相当于 =ANY,表示集合中所有的成员。

  1. SELECT * FROM employees WHERE job_id IN ('PU_CLERK','SH_CLERK') ORDER BY employee_id;
  2. SELECT * FROM employees WHERE salary IN (SELECT salary FROM employees
  3. WHERE department_id =30) ORDER BY employee_id;

NOT IN 示例:相当于 != ALL。如果集合中的任何成员为 NULL,则计算为 false

  1. SELECT * FROM employees WHERE salary NOT IN (SELECT salary FROM employees
  2. WHERE department_id = 30) ORDER BY employee_id;
  3. SELECT * FROM employees WHERE job_id NOT IN ('PU_CLERK', 'SH_CLERK')
  4. ORDER BY employee_id;