oracle子查询的使用
1、子查询1.概念即一个select查询语句中嵌套了另外的一个或者多个select语句。2.分类(2.1)单行子查询单行子查询即子查询结果为单个结果示例1:在雇员表中查询出工资大于Alana雇员工资的所有雇员

3、(2.2)多行子查询多行子查询即子查询返回结果为多个查询出工作岗位和姓氏为Taylor两个人一样,但是工资却比姓氏为Taylor的两个人中的任意一个都高的雇员(大于任何一个人也就是大于最小)这里要使用到关键字any,它的意思就是大于任意值。select last_name,salary,job_id from employees where job_id in(select job_id from employees where last_name='Taylor') and salary>any(select salary from employees where last_name='Taylor');下图中可以看到姓氏为Taylor的有两个人,两个人的最小工资为3200,大于3200的所有数据都已经被查询出来了。


5、3.在子查询中也可以使用函数示例:查询出工资最低的雇员是谁select first_name,salary,job_id from employees where salary=(select min(salary) from employees);

7、4.在子查询中也可以使用分组示例:查询出每个部门工资最低的雇员。从下图中可以看出,子查询得出的结果并不是一行数据,所以要使用In.

9、5.在子查询中也可以使用having子名对分组进行限制示例:查询出哪些部门最低工资高于50部门select department_id,min(salary) from employees group by department_idhaving min(salary)>(select min(salary) from employees where department_id=50);
