美文网首页
Oracle 单行子查询和多行子查询

Oracle 单行子查询和多行子查询

作者: 你家门口的两朵云 | 来源:发表于2020-10-19 20:52 被阅读0次
--什么是单行子查询?
--从子查询中返回一行结果的查询

select e.employee_id,e.last_name,e.salary
from employees e
where e.department_id=( select e.department_id from employees e where e.employee_id=105);

--总结:以上语句解决了这些问题:查到雇员号为105的人所在部门的所有雇员的信息。

-----------------------------------------------------------------------------------------

select e.employee_id,e.last_name,e.salary
from employees e
where e.department_id = (select e.department_id from employees e where e.employee_id = 105) and e.salary>5000;

--总结:以上语句解决了这些问题:查到雇员号为105的人所在部门的所有雇员 中工资高于5000的人员的信息。

-----------------------------------------------------------------------------------------


select e.employee_id,e.last_name,e.salary
from employees e
where e.department_id = (select e.department_id from employees e where e.employee_id = 105) and e.salary>=(select AVG(e.salary) from employees e);

--总结:以上查询解决了问题:查询出来雇员号为105的雇员所在部门中薪资大于所有人平均工资的雇员信息。


-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------

--多行子查询
--什么是多行子查询
--子查询返回多行称为子查询


-- IN运算符
select e.employee_id,e.last_name,e.salary,e.department_id
from employees e
where e.salary IN(select e.salary from employees e   where e.department_id =60);

--总结:以上查询中IN的作用:in(里面包含多个符号条件的数据)

--查询select e.salary from employees e   where e.department_id =60得到:(9000,6000,4800,4800,4200)
--以上等价于:
select e.employee_id,e.last_name,e.salary,e.department_id
from employees e
where e.salary IN(9000,6000,4800,4800,4200);


--ANY运算符(同SOME运算符)

select e.last_name
from employees e
where e.salary < ANY (select e.salary  from employees e where e.department_id = 60);

--总结:ANY 一条数值>= 每一条(多个数值集合)中的任何一个

select e.last_name
from employees e
where e.salary <  (select MAX(e.salary)  from employees e where e.department_id = 60);

--总结:使用MAX( )函数可以直接找到多行函数的数值的最大值。

相关文章

  • Oracle 单行子查询和多行子查询

  • Oracle 学习笔记(八)

    子查询 多列子查询 上篇笔记讲的单行子查询是指子查询只返回单列、单行数据;多行子查询是指返回单列多行数据,都是针对...

  • Oracle | 子查询和伪列

    1. 子查询 (1)单行子查询 (2)多行子查询 1)ANY子查询 2)ALL 子查询 2. 伪列...

  • SQL高级查询(三)

    T3 子查询的应用(一) 1.子查询的概述 2.单行子查询 3.多行子查询(重点) 4.子查询在select子句中...

  • Oracle入门笔记【2】子查询

    1,wherer:子查询一般会返回单行单列 单行多列 多行单列 ; 2,having:子查询会返回单行单列,同时表...

  • 数据库第七天

    子查询 查询里面还有查询注意: 子查询优先于主查询执行 最好子查询用括号 查询比ALLEN工资高的员工信息 单行子...

  • 17/12/6 子查询

    17/12/6 子查询 单行子查询 括号内的查询叫做子查询,也叫内部查询,先于主查询的执行。 子查询可以嵌入1.w...

  • SQL查询_高级查询

    SQL查询_高级查询 一、子查询 子查询出现的位置一般为条件语句,oracle会先执行子查询,再执行父查询,子查询...

  • 子查询(嵌套子查询)

    where子句:子查询返回结果为单行单列,单行多列,多行单列(往往使用in,any,all)操作符having子句...

  • 子查询(嵌套子查询)

    where子句:子查询返回结果为单行单列,单行多列,多行单列(往往使用in,any,all)操作符having子句...

网友评论

      本文标题:Oracle 单行子查询和多行子查询

      本文链接:https://www.haomeiwen.com/subject/omulmktx.html