P44 单行子查询案例分析
2.单行子查询案例分析
#4. 单行子查询
#4.1 单行操作符:= != > >= < <=
#题目:查询工资大于149号员工工资的员工的信息SELECT employee_id,last_name,salary
FROM employees
WHERE salary >(SELECT salaryFROM employeesWHERE employee_id=149 );#返回job_id与141号员工相同,salary比143号员工多的员工姓名,job_id和工资SELECT last_name,job_id,salary
FROM employees
WHERE job_id=(SELECT job_id FROM employeesWHERE employee_id=141)
AND salary >(SELECT salary FROM employeesWHERE employee_id=143);
#题目:返回公司工资最少的员工的last_name,job_id和salarySELECT last_name,job_id,salary
FROM employees
WHERE salary=(SELECT MIN(salary)FROM employees);
#题目:查询与141号员工的manager_id和department_id相同的
#其他员工的employee_id,manager_id,department_idSELECT employee_id,manager_id,department_id
FROM employees
WHERE manager_id =(SELECT manager_idFROM employeesWHERE employee_id=141)
AND department_id=(SELECT department_idFROM employeesWHERE employee_id=141)
AND employee_id <>141 ; #要把141这个人排出去#方式2:了解
SELECT employee_id,manager_id,department_id
FROM employees
WHERE (manager_id,department_id) =(SELECT manager_id,department_idFROM employeesWHERE employee_id=141)
AND employee_id <>141;#题目:查询最低工资大于50号部门最低工资的部门id和其最低工资SELECT department_id,MIN(salary)
FROM employees
WHERE department_id IS NOT NULL
GROUP BY department_id
HAVING MIN(salary)>(SELECT MIN(salary)FROM employeesWHERE department_id =50);
#题目:显式员工的employee_id,last_name和location。其中,
#若员工department_id与location_id为1800的department_id相同,
#则location为’Canada’,其余则为’USA’。 SELECT employee_id,last_name,(CASE department_id WHEN (SELECT department_id FROM departmentsWHERE location_id=1800 ) THEN 'Canada'ELSE 'USA' END)"location"
FROM employees;
#4.2 子查询中的空值问题 :公司里压根没有这个人
SELECT last_name, job_id
FROM employees
WHERE job_id =(SELECT job_idFROM employeesWHERE last_name = 'Haas');
#4.3 非法使用子查询:子查询查出了多行数据,但是=号是单行所以报错
# 错误:Subquery returns more than 1 row
SELECT employee_id, last_name
FROM employees
WHERE salary =(SELECT MIN(salary)FROM employeesGROUP BY department_id);
P44 单行子查询案例分析相关推荐
- Oracle数据库:子查询、单行子查询,多行子查询,in,any,all语句,子查询的练习案例
Oracle数据库:子查询.单行子查询,多行子查询,in,any,all语句,子查询的练习案例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 ...
- oracle单行子查询返回多个行 order by,单行子查询返回多个行 Issue分析求助
with order_base as --获取订单基础情况 ( select ou.order_key order_key, ou.order_quantity_i, ood.dispatch_tim ...
- 1.子查询知识体系,单行子查询,多行子查询
1查询工资比scott高的员工信息 A 第一步:查询出scott这个员工的工资 select sal from emp where ename = 'SCOTT'; B 第二步:查询出工资比sc ...
- ORA-01427: 单行子查询返回多个行 出现原因及对应防止措施
今天的一段批量更新的sql语句,稍微修改了一下就报错:ORA-01427: 单行子查询返回多个行.这个问题其实之前有遇到过几次,原因也比较简单,就是没有做好子查询的约束条件,导致该返回一条数据的地方返 ...
- oracle单行子查询返回多个行 order by,单行子查询返回多个行
子查询: 用子查询能解决的问题 假想你想要写一个查询来找出挣钱比陆涛的薪水还多的人.为了解决这个问题,你需要两个查询:一 个找出陆涛的收入,第二个查询找出收入高于陆涛的人. 你可以用组合两个查询的方法 ...
- 单行子查询 多行子查询 关联子查询 笔记
1.连接基本语法 select columns_list from table_1 innner join table_2 on join_condition; eg:select e.empno,e ...
- MySQL—不相关子查询(单行子查询)
一.什么是子查询? 一条SQL语句含有多个select 举例: 1.查询所有比"CLARK"工资高的员工的信息 select * from emp where sal>(se ...
- oracle子查询子查询,Oracle 单行子查询和多行子查询
--什么是单行子查询? --从子查询中返回一行结果的查询 select e.employee_id,e.last_name,e.salary from employees e where e.depa ...
- 单行子查询返回多个行_sql多表查询练习,习题总结
组函数(聚合函数):组函数操作行集,给出每组的结果.组函数不象单行函数,组函数对行的集合进行操作,对每组给出一个结果.这些集合可能是整个表或者是表分成的组. 组函数和单行函数的区别: 单行函数对查询到 ...
最新文章
- [唐诗]古风(其二十四)-李白
- oracle left join优化
- C++容器(三):pair类型
- laravel 中创建全局函数 (类似于 TP 中 functions.php) 的方式
- BZOJ1015 JSOI2008 星球大战starwars 并查集
- 第三次学JAVA再学不好就吃翔(part77)--迭代器遍历
- bzoj 5093 [Lydsy1711月赛]图的价值——第二类斯特林数
- 迷你MVVM框架 avalonjs 0.71发布
- [转]Handsontable对单元格的操作
- Backward_chaining
- css实现圆球旋像水波波动_66 个超有用的CSS 特效!
- 库克说他在上大学时学会了编程,你呢?
- 泊松分布(Poisson Distribution)
- wireshark-filter帮助手册
- 如何获取微信小店页面路径
- 生成对抗式网络 (GAN) 及其应用
- 【VMware】虚拟机中映射USB设备
- Oracle DB 备份和恢复的概念
- 来说说datatype
- 安卓中的BP、AP、NV是什么意思?