Oracle_高级子查询
1.多列子查询 查询与141号或者174号员工的 manager_id和department_id相同的其他员工的employee_id,manager_id,department_id //单列子查询的方式 select employee_id,department_id from employees e1 wheremanager_id in ( select manager_id from employee where employee_id in(141,174); )and department_id in ( select department_id from employee where employee_id in(141,174); ) and employee_id not in (141,174);
//多列子查询:将两个单列子查询合并 select employee_id,department_id from employees e1 where(manager_id,department_id) in ( select manager_id,department_idfrom employee where employee_id in(141,174); ) and employee_id not in (141,174);
2.在from子列中使用子查询 返回比本部门平均工资高的员工的last_name,department_id,salary 及平均工资 select last_name,salary from employees e1 where salary >( select avg(salary) from employees e2 where e1.department_id=e2.department_id group by department_id ); //使用from字句
select last_name,salary,avg_sal from employees e1,(select department_id,avg(salary) as avg_sal from employees group by department_id ) e2 where e1.department_id=e2.department_id;
3.单列子查询 条件表达式 case 显示员工employee_id,last_name和location。其中,若员工department_id和location_id 为 1800的department_id相同,则显示Canada,否则USA select employee_id,last_name, (case department_idwhen(select department_id from departments where location_id=1800) then 'Canda' else 'USA'end ) location from employees; 在order by中使用单列子查询 显示员工的employee_id,要求按照员工department_name 排序 select employee_id,last_name from employees e1 order by (select department_name from departments d where e1.department_id =d.department_id); 4.相关子查询 定义:相关子查询按照一行接一行的顺序执行,主查询的每一行都执行一次子查询。
5.EXISTS 操作符 定义:如果子查询中满足条件行,则返回true,不满足条件返回false 查询公司管理者的employee_id,job_id,department_id信息 select employee_id,department_id from empolyee_id e1 where exists ( //只需要告诉我能查到,不需要返回具体数据 select 'asddsa' from employees e2 where e1.employee_id=e2.manager_id ); 6.WITH子句 查询公司中工资比Able高的员工的信息 select employee_id,salary from employees where salary >( select salary from employees where last_name='Abel' ); //使用with子句实现 with Abel_salas (select salary from employees where last_name='Abel') //先查询able的工资,把Abel_sal理解为表
select employee_id,salary from employees where salary >( select salary form Abel_sal ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ORA-00257: archiver error. Connect internal only, until
- sqlite的安装
- kali学习(一)
- 关于正则表达式在JS中的应用
- 关闭flash的p2p上传,节省网络带宽
- cocos2D-X源码分析之从cocos2D-X学习OpenGL(8)----纹理
- ruby-on-rails-3 – Rails best_in_place jQuery就地编辑:
- reactjs – Typescript – React 0.14无状态功能组件
- 使用sqlplus工具导出数据到csv文件,要求文件带有时间戳
- ruby-on-rails – 基于数据库的文件系统的Rails实现