子查询

匿名 (未验证) 提交于 2019-12-02 23:49:02


select * from emp;
--查询薪水比allen高的员工信息
-- (1)查询allen的薪水
select sal from emp where ename='ALLEN';
-- (2)查询比薪水高于1600的员工信息
select * from emp where sal>1600;
--总结
select * from emp where sal >(select sal from emp where ename='ALLEN');

--案例:











oracle支持,mysql不支持





select deptno,count(*)as num ,avg(sal) as avgsal from emp where deptno is not null

select d.deptno,dname,num,avgsal from dept d,


where d.deptno=t.deptno


--查询本部门最高工资的员工


--(2)查询20号最门的员工的最高工资

--(3)查询300号最门的员工的最高工资

--相关子查询
select * from emp e1 where sal=(select max(sal) from emp e2 where e1.deptno=e2.deptno);
查询本部门工资高于平均工资的那些员工
select * from emp where deptno=10 and sal>(select avg(sal) from emp where deptno=10);
select * from emp where deptno=20 and sal>(select avg(sal) from emp where deptno=20);
select * from emp where deptno=30 and sal>(select avg(sal) from emp where deptno=30);
--相关子查询

order by deptno;

多行子查询:查询的结果多行单列






select sal from emp where job='CLERK';
select * from emp where sal<any(select sal from emp where job='CLERK');

-- 查询工资比所有的“SALESMAN”都高的雇员的编号、名字和工资。
select sal from emp where job='SALESMAN';
select sal from emp where sal>all(select sal from emp where job='SALESMAN');
SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL>(select max(sal) from emp where job='SALESMAN');

select distinct job from emp where deptno=10;

job in(select distinct job from emp where deptno=10);
等量替换

( job='MANAGER' OR JOB='PRESIDENT' OR JOB='CLERK');

文章来源: https://blog.csdn.net/HanYueQian/article/details/96561141
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!