Oracle数据库基础知识-7
单行子查询
- 单行子查询
- select 内容 from 表名 where 子查询语句
- 什么时候使用单行子查询?
- 在不能直接获取有效信息的时候,考虑使用子查询
- 单行子查询的注意事项?
- 子查询的结果必须只有一个值
- 可以直接使用算术链接符
- 子查询出现在where中,一般出现在条件语句的右边
- 实例
- 查询所有比雇员“CLARK”工资高的员工信息
- select * from emp where sal>(select sal from emp where ename=’CLARK’)
- 查询工资高于平均工资的员工的名字和工资
- select * from emp where sal>(select avg(sal) from emp) order by sal
- 查询和soctt属于同一部门且工资比他低的员工资料
- select * from emp where deptno=(select deptno from emp where ename=’SCOTT’) and sal<(select sal from emp where ename=’SCOTT’)
- 查询工资最高的员工资料
- select * from emp where sal=(select max(sal) from emp)
- 查询职务和scott相同,雇佣时间早的员工信息
- select * from emp where job=(select job from emp where ename=’SCOTT’) and hiredate<(select hiredate from emp where ename=’SCOTT’)
- 查询工资比scott高或者雇佣时间早的员工编号和名字
- select empno,ename from emp where sal>(select sal from emp where ename=’SCOTT’) or hiredate<(select hiredate from emp where ename=’SCOTT’)
- 查询工资高于任意一个CLERK的所有员工信息
- select * from emp where sal>(select min(sal) from emp where job=’CLERK’) and job<>’CLERK’
多行子查询
- 多行子查询
- 多行子查询学习:其实就使用使用关键字:any all in
- 注意:子查询返回多个值建议使用多行子查询,返回的单个值使用单行子查询
- 实例
- 查询工资高于所有SALESMAN的员工信息
- select * from emp where sal>all (select sal from emp where job=’SALESMAN’;
- 查询部门20中同部门10的雇员工作一样的雇员信息
- select * from emp where deptno=’20’ and job= any (select job from emp where deptno=’10’)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kylin!
评论