- 也称为集合比较子查询
- 内查询返回多行
- 使用多行比较操作符
多行比较操作符
| 操作符 | 含义 |
|---|---|
| IN | 等于列表中的任意一个 |
| ANY | 需要和单行比较操作符一起使用,和子查询返回的某一个值比较 |
| ALL | 需要和单行比较操作符一起使用,和子查询返回的所有值比较 |
| SOME | 实际上是 ANY 的别名,作用相同,一般常使用 ANY |
体会 ANY 和 ALL 的区别
代码示例
题目:返回其它job_id中比job_id为‘IT_PROG’部门任一工资低的员工的员工号、姓名、job_id 以及salary


题目:返回其它job_id中比job_id为‘IT_PROG’部门所有工资都低的员工的员工号、姓名、job_id以及salary

题目:查询平均工资最低的部门id
#方式1:SELECT department_idFROM employeesGROUP BY department_idHAVING AVG(salary) = (SELECT MIN(avg_sal)FROM (SELECT AVG(salary) avg_salFROM employeesGROUP BY department_id) dept_avg_sal)
#方式2:SELECT department_idFROM employeesGROUP BY department_idHAVING AVG(salary) <= ALL (SELECT AVG(salary) avg_salFROM employeesGROUP BY department_id)
空值问题
SELECT last_nameFROM employeesWHERE employee_id NOT IN (SELECT manager_idFROM employees);
