九、多行子查询

子查询的返回结果是多行数据. 此时, 不能再使用普通的比较运算符了.

多行记录比较运算符:

一、any

  • Ø ANY: 跟结果中的任何一个数据进行比较

查询工资低于任何一个“CLERK”的工资的雇员信息

select * from emp where sal<ANY(select sal from emp where job='CLERK') and job<>'CLERK';

【注意】any操作符后接多行子查询返回列表中的每一个值。

<any为小于最大的

>any为大于最小的。

二、all

  • Ø ALL: 跟结果中的所有数据进行比较

查询工资比所有的“SALESMAN”都高的雇员的编号、名字和工资

select empno, ename, sal

from emp

where sal>ALL(select sal from emp where job='SALESMAN');

【注意】all操作符比较子查询返回列表中的每一个值。

<all为小于最小的

>all为大于最大的

=all无意义,一般不写。

三、in

  • Ø IN: 等于结果中的任何一个

查询部门20中职务同部门10的雇员一样的雇员信息

select *

from emp

where job in (select job from emp where deptno=10)

and deptno=20;

select *

from emp

where job =any (select job from emp where deptno=10)

and deptno=20;

原文地址:https://www.cnblogs.com/qiaoxin11/p/12763579.html