Oracle子查询详解
时间:2022-07-22
本文章向大家介绍Oracle子查询详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
子查询
用于当一次查询的结果是另一次查询所需要的时候, 可以使 用子查询
1 单行子查询
子查询的返回结果是单行数据.
a) 查询所有比“CLARK”工资高的员工的信息
select * from emp
where sal > (select sal from emp where ename='CLARK');
b) 查询工资高于平均工资的雇员名字和工资
select ename, sal from emp
where sal>(select avg(sal) from emp);
c) 查询和 SCOTT 同一部门且比他工资低的雇员名字和工资
select ename, sal, deptno
from emp
where deptno=(select deptno from emp where
ename='SCOTT')
and sal<(select sal from emp where ename='SCOTT');
d) 查询职务和 SCOTT 相同,比 SCOTT 雇佣时间早的雇员信息
select *
from emp
where job=(select job from emp where ename='SCOTT')
and hiredate<(select hiredate from emp where
ename='SCOTT');
2 多行子查询
子查询的返回结果是多行数据. 此时, 不能再使用普通的比较运算符了. 多行记录比较运算符: ANY: 跟结果中的任何一个数据进行比较
查询工资低于任何一个“CLERK”的工资的雇员信息
select * from emp where sal<ANY(select sal from emp
where job='CLERK') and job<>'CLERK';
ALL: 跟结果中的所有数据进行比较
查询工资比所有的“SALESMAN”都高的雇员的编号、名字和 工资
select empno, ename, sal
from emp
where sal>ALL(select sal from emp where
job='SALESMAN');
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;
3 相关子查询和不相关子查询
不相关子查询: 子查询不会用到外查询的数据, 子查询可以独立运行. 相关子查询: 子查询会用到外查询的数据, 子查询不能独立运行.
查询本部门最高工资的员工 a) 不相关子查询的实现方式
select *
from emp e
where (e.deptno, e.sal) in (select deptno, max(sal)
from emp group by deptno);
b) 相关子查询的实现方式 查询最高工资的部门号
select *
from emp e
where sal=
(select max(sal) from emp where deptno=e.deptno);
4 子查询可以作为一张表格进行多表连接查询
查询每个部门平均薪水的等级
select t.deptno, t.avg_sal, s.grade
from salgrade s
join (
select deptno, avg(sal) avg_sal from emp group
by deptno
) t
on t.avg_sal between s.losal and s.hisal
order by t.deptno;
- 人类的未来:儿童都能驾驶的汽车
- 论循证新闻的方法与意义——一种媒体融合背景下新闻生产方式创新
- 域名资讯:域名jiuhuang.com已搭建成“韭黄答题助手”网站
- Servlet开篇
- 浅谈中国域名的名与利
- 加密货币的火爆,tokens.com域名已50万美元成交
- 家具平台谷居完成2000万元融资,启用长尾双拼域名
- 如果未来的 AI 拥有意识,你舍得不理它吗?
- 微信这家人脸智慧时尚店可以“刷脸”试衣、付款
- 北京允许无人驾驶路测 难道是为方便圣诞老人送礼?
- 小程序新增多项功能,优化100多个功能点,堪称重磅!
- 人工智能的回报率:对冲基金嵌入机器学习?
- “人工智能助力上海科创中心建设”国际高峰论坛圆满结束
- 纳米白与Pandas
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法