Maison > base de données > tutoriel mysql > oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

WBOY
Libérer: 2016-06-07 15:30:39
original
1193 Les gens l'ont consulté

1 子查询 ex: 查出 姓名, 其工资在平均工资之上 select ename,sal from emp where sal (select avg(sal) from emp) ; 2 见表子查询 查询每个部门中工资最高的人 . 直观方法 select ename,sal from emp where sal in (select max(sal) from emp group by dept

1 子查询

  ex:  查出 姓名, 其工资在平均工资之上

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


 2 见表子查询

     查询每个部门中工资最高的人 .

     直观方法   select ename,sal from emp  where  sal  in (select max(sal) from emp group by deptno) ;

                     这样的查询方式会出现一个错误, 假如 A部门最高薪水5000, 而A部门的p员工薪水3000, 却等于B部门的最高薪水, 那么员工也将显示出来;


    正确方法如下:

                       首先 , 可以发现 select max(sal) from emp group by deptno  能得到一张表 , 如下图所示

oracle 基本语句学习 (三)之子查询

                      oracle 基本语句学习 (三)之子查询


                            那么 只要在emp中找到部门 和薪水都与此表一致的员工即可.


               语句如下: 

                              1 select ename ,sal from emp

                               2 join (select max(sal)max_sal, deptno  from emp  group by deptno) t   //连接表

                               3 on( emp.sal=t.max_sal and emp.deptno=t.deptno) ;  // 连接条件


               oracle 基本语句学习 (三)之子查询

                           

                         

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

oracle 基本语句学习 (三)之子查询

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal