Oracle DB 使用子查询来解决查询
- 使用子查询解决问题
- 子查询语法
SELECT select_list FROM table WHERE expr operator
(SELECT select_list FROM table);
- 使用子查询
SELECT last_name, salary FROM employees
WHERE salary >
(SELECT salary FROM employees WHERE last_name = 'Abel');
- 使用子查询的准则
- 子查询的类型
- 单行子查询
SELECT last_name, job_id FROM employees
WHERE job_id =
(SELECT job_id FROM employees WHERE employee_id = 141);
- 执行单行子查询
SELECT last_name,job_id, salary FROM employees
WHERE job_id =
(SELECT job_id FROM employees WHERE last_name= 'Taylor')
AND salary >
(SELECT salary FROM employees WHERE last_name= 'Taylor');
- 在子查询中使用组函数
SELECT last_name,job_id, salary FROM employees
WHERE salary =
(SELECT MIN(salary) FROM employees);
- 带有子查询的HAVING子句
SELECT department_id, MIN(salary) FROM employees GROUP BY department_id
HAVING MIN(salary) >
(SELECT MIN(salary) FROM employees WHERE department_id = 50);
SELECT job_id, AVG(salary) FROM employees GROUP BY job_id
HAVING AVG(salary) =
(SELECT MIN(AVG(salary)) FROM employees GROUP BY job_id);
- 此语句中有什么错误
Connected.
hr@TEST0924> SELECT employee_id, last_name FROM employees
2 WHERE salary =
3 (SELECT MIN(salary) FROM employees GROUP BY department_id);
(SELECT MIN(salary) FROM employees GROUP BY department_id)
*
ERROR at line 3:
ORA-01427: single-row subquery returns more than one row
- 内部查询没有返回任何行
hr@TEST0924> SELECT last_name, job_id FROM employees
2 WHERE job_id =
3 (SELECT job_id FROM employees WHERE last_name = 'Haas');
- 多行子查询
SELECT last_name, salary, department_id FROM employees
WHERE salary IN
(SELECT MIN(salary) FROM employees GROUP BY department_id);
SELECT last_name, salary, department_id FROM employees
WHERE salary IN (2500, 4200, 4400, 6000, 7000, 8300, 8600, 17000);
- 在多行子查询中使用ANY运算符
SELECT employee_id, last_name, job_id, salary FROM employees
WHERE salary < ANY
(SELECT salary FROM employees WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';
- 在多行子查询中使用ALL运算符
SELECT * FROM departments WHERE NOT EXISTS
(SELECT * FROM employees WHERE employees.department_id=departments.department_id);
- 子查询中的空值
SELECT emp.last_name FROM employees emp WHERE emp.employee_id NOT IN
(SELECT mgr.manager_id FROM employees mgr);
SELECT emp.last_name FROM employees emp WHERE emp.employee_id IN
(SELECT mgr.manager_id FROM employees mgr);
SELECT last_name FROM employees WHERE employee_id NOT IN
(SELECT manager_id FROM employees WHERE manager_id IS NOT NULL);
- 小结
Oracle DB 使用子查询来解决查询的更多相关文章
- Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...
- .Net程序员学用Oracle系列(14):子查询、集合查询
1.子查询 1.1.子查询简介 1.2.WITH 子查询 2.集合查询 2.1.UNION 和 UNION ALL 2.2.MINUS 2.3.INTERSECT 2.4.集合运算与 ORDER BY ...
- Oracle with重用子查询
--with 重用子查询对于多次使用相同子查询的复杂查询语句来说,用户可能会将查询语句分成两条语句执行.第一条语句将子查询结果存放到临时表,第二条查询语句使用临时表处理数据.从 Oracle 9i 开 ...
- Oracle子查询(嵌套查询)
概念: 所谓子查询,即一个select语句中嵌套了另外的一个或者多个select语句 需求:查找和Smith同部门的所有员工的id和last_name 目标: 员工id,last_name from: ...
- oracle数据库之子查询
子查询也叫内部查询,在主查询之前执行一次并得到结果,此结果一般情况下,是用来当做是主查询的条件. -- 在 emp 表中,找出工资比 ALLEN 的高? -- 先查出 ALLEN 的工资是多少? ...
- Oracle系列七 子查询
子查询语法 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table); 子查询 (内查询) 在 ...
- Oracle笔记(六) 多表查询
最近看了李兴华的oracle视频,这是网上别人做的笔记非常细致,分享给大家,第六篇 原创地址:http://www.cnblogs.com/mchina/archive/2012/09/07/2651 ...
- SQL-在Update中进行子查询和左联查询
以下总结源自后边的三个参考思索和测试而来: 我们有一张行政区划表,为了查询速度的优化,我们需要在这张表中,将每个乡镇的记录中写入其所属的省.市.县, 表如下: 当然,我们可以使用游标或在存储过程中使用 ...
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
随机推荐
- 使用路由传参时,query与params的区别!
query 1:参数会在地址栏显示 2:参数不需要在路由的path后接:args1/:args2 3:获取参数用this.$route.query.args1 params 1:参数需要在路由的pat ...
- ActiveReports 大数据分析报告:公交车司乘冲突引发的刑事案件
公交车司乘冲突刑事案件总体情况 公交车司乘冲突引发的刑事案件总量稳中有升 (注:本报告界定的“公交车司乘冲突刑事案件”,是指案件诱因为公交车司机与乘客在乘车过程中发生冲突而引发的刑事案件.包括但不限于 ...
- Python 爬取 猫眼 top100 电影例子
一个Python 爬取猫眼top100的小栗子 import json import requests import re from multiprocessing import Pool #//进程 ...
- 【五】php 面向对象
面向对象 概念:按类进行分类,类是表示彼此之间可能互不相同,但是具有一些共同点的对象集合 多态性:不同的类对同一操作可以有不同的行为 继承:允许我们使用子类在类之间创建层次关系 类 关键字:class ...
- pom中配置的仓库无效的问题
今天在用spring cloud的时候发现,配置的pom仓库一直无效(官网要求2.0版本直接从指定仓库里下).于是上网搜索,发现(http://18810098265.iteye.com/blog/2 ...
- Oracle简单语句查询
语法3-1:简单查询语句语法 SELECT [DISTINCT] * |列名称[AS][列别名],列名称[AS][列别名],...FROM 表名称[表别名]; 在整个简单查询之中,主要有两个子句完成: ...
- 一篇好文之Android数据库 GreenDao的完全解析
数据库GreenDao.jpg 之前在开发过程中,数据库基本上会使用Litepal或者SQlite自己写,最近换新环境,公司原先使用的数据库就是GreenDao,在各种情况的作用下,准备了解下Gree ...
- 虚拟机ubuntu的常用命令集合
一.文件/文件管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd -回上一 ...
- request.POST 和 request.GET
通过request.POST属性 得到<提交的表单数据>,也是一个类字典对象.request.GET属性 ,得到<URL中的keyvalue请求参数>,也是一个类字典对象.
- Python3之JSON数据解析实例:新闻头条 --Python3
一.接口相关 数据服务商:聚合数据(https://www.juhe.cn/) API部分文档: 完整API文档下载:https://files.cnblogs.com/files/qikeyishu ...