当前位置:   article > 正文

五、多表查询-4.3子查询-列子查询_子查询告诉我要包含一个列

子查询告诉我要包含一个列

一、概述

子查询返回的结果是一列(可以是多行),这种子查询称为列子查询

常用的操作符in、not in、any、some、all

二、演示

【例1】查询“销售部”和“市场部”的所有员工信息

1、查询销售部和市场部的部门ID

 返回的结果是一列(可以多行)

 2、根据销售部的部门ID,查询员工信息

3、合并两个,变为子查询

【例2】查询比财务部所有人工资都高的员工信息

1、查询财务部的部门ID

2、查询财务部所有人员工资

 返回的结果是一列(可以多行)

3、比财务部所有人工资都高的员工信息

【例3】查询比研发部其中任意一人工资高的员工信息

1、查询研发部的部门ID

2、查询研发部所有人员工资

 返回的结果是一列(可以多行)

3、比研发部任意一人工资高的员工信息

【代码】

  1. -- 列子查询
  2. -- 1、查询“销售部”和“市场部”的所有员工信息
  3. -- a.查询销售部和市场部的部门ID
  4. select id from dept1 where name = '销售部' or name = '市场部'; -- 返回2, 4
  5. -- b.根据销售部的部门ID,查询员工信息
  6. select * from emp1 where dept_id in (2, 4);
  7. -- 合并两个,变为子查询
  8. select * from emp1 where dept_id in (select id from dept1 where name = '销售部' or name = '市场部');
  9. -- 2、查询比财务部所有人工资都高的员工信息
  10. -- a.查询财务部的部门ID
  11. select id from dept1 where name = '财务部'; -- 返回3(id值)
  12. -- a.查询财务部所有人员工资
  13. select salary from emp1 where dept_id = 3;
  14. select salary from emp1 where dept_id = (select id from dept1 where name = '财务部');
  15. -- b.比财务部所有人工资都高的员工信息
  16. select * from emp1 where salary > all (select salary from emp1 where dept_id = (select id from dept1 where name = '财务部'));
  17. -- 3、查询比研发部其中任意一人工资高的员工信息
  18. -- a.查询研发部的部门ID
  19. select id from dept1 where name = '研发部'; -- 返回1(id值)
  20. -- a.查询研发部所有人员工资
  21. select salary from emp1 where dept_id = (select id from dept1 where name = '研发部');
  22. -- b.比研发部任意一人工资高的员工信息
  23. select * from emp1 where salary > any (select salary from emp1 where dept_id = (select id from dept1 where name = '研发部'));
  24. select * from emp1 where salary > some (select salary from emp1 where dept_id = (select id from dept1 where name = '研发部'));

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/754344
推荐阅读
相关标签
  

闽ICP备14008679号