多行子查询:
操作符 | 含义 |
---|---|
In | 等于列表中的任意一个 |
Any | 和子查询返回的某一个值比较 |
All | 和子查询返回的所有值比较 |
any:任一(和子查询的任意值比较)
例如:返回其它部门比JOB为’ST_MAN’部门任一工资低的
我们先把’ST_MAN’部门的工资先查出来,作为子查询
Select salary,job from emp where job=’ST_MAN’
之后再查主查询,再嵌套,查出来的值不等于自己
Select last_name,job_id,salary
From emp
Where salary < any(Select salary from emp where job=’ST_MAN’)
And job<>’ST_MAN’
All:所有的(比最高的还要高,或者比最低的还要低)
还是一样的例子,先把子查询查出来
Select salary,job from emp where job=’ST_MAN’
再查主查询,嵌套,值不等于自己
Select last_name,job_id,salary
From emp
Where salary > all(Select salary from emp where job=’ST_MAN’)
And job<>’ST_MAN’
In:任意一个(等于子查询的任意一个)
一样的例子,先查子查询
Select salary,job from emp where job=’ST_MAN’
再查主查询,嵌套,值不等于自己
Select last_name,job_id,salary
From emp
Where salary in(Select salary from emp where job=’ST_MAN’)
And job<>’ST_MAN’
Any与in的区别是
Any是和子查询的值比较,in是等于子查询的值