Oracle SQL多行子查询

开发工具与关键技术:Oracle sql*plus  PLSQL Developer
作者:杨春桃
撰写时间:2019年03月26日

多行子查询:

操作符 含义
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是等于子查询的值

猜你喜欢

转载自blog.csdn.net/weixin_44552861/article/details/89067804