oracle子查询子查询,Oracle 单行子查询和多行子查询
--什么是單行子查詢?
--從子查詢中返回一行結果的查詢
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数据库sid已存在,Orac
- 下一篇: oracle表设置主键自增长,笔记:or