子查詢的返回結果是多行數據. 此時, 不能再使用普通的比較運算符了.
多行記錄比較運算符:
一、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; |