子查询
  aH5iJNmqbh1v 2023年11月02日 21 0

子查询的定义:select语句中嵌套select语句,被嵌套的select语句为子查询。

子查询可以出现的位置:

select ...
	(select...)
		from
			...(select)..
					where
						...(select)...

==即可以出现在select后面,from后面,where后面!==

==where出现子查询==

问题案例:找出比最低工资高的员工姓名和工资?

第一步:查询最低工资是多少?

第二步:找出大于最低工资的?

第三步:整合前面的两点,得出下面的SQL语句:

select ename,sal from emp where sal > (select min(sal) from emp);

==from中的子查询==

注意:from后面的子查询,可以将子查询的查询结果当做一张临时表(==技巧!!==)

问题案例:找出每个岗位的平均工资的薪资等级?

第一步:找出每个岗位的平均工资(按照岗位分组求平均值)

select job,avg(sal) from emp group by job;

第二步:把上面的查询结果看作是一张表T。然后把T表和salgrade表连接查询。

select T.*,s.grade from T join salgrade s on T.avg(sal) between s.losal and s.hisal;

第三步,将第二步中的T换成第一步中的SQL语句得如下的结果:

select 
	T.*,s.grade
		from (select job,avg(sal) as avgsal from emp group by job) T 
			join salgrade s on 
				T.avgsal between s.losal and s.hisal;

==select后面的子查询==(了解即可)

案例问题:找出每个员工的部门名,要求显示员工名,部门名?

select e.ename,(select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;

注意:对于select后面的子查询,这个子查询只能返回一个结果,如果多余一条结果,那么就会报错!!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: PDB拔插操作手册 下一篇: 微服务架构缓存
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  Dk8XksB4KnJY   2023年12月23日   15   0   0 字段字段SQLSQL
aH5iJNmqbh1v
作者其他文章 更多

2023-11-13

2023-11-12

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02