iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle-子查询
  • 535
分享到

Oracle-子查询

2024-04-02 19:04:59 535人浏览 泡泡鱼
摘要

一、WHERE条件中的子查询1. 比black工资高的雇员有哪些?select ename from empwhere sal>(select sal

一、WHERE条件中的子查询

1. 比black工资高的雇员有哪些?

select ename 

from emp

where sal>(select sal from emp where ename='BLAKE');


2. 高于30部门最高工资的雇员有哪些?

select ename,sal 

from emp

where sal>(select max(sal) from emp where deptno=30);


select ename,sal 

from emp

where sal > all (select sal from emp where deptno=10);   --任何


3. 当all后面接子查询的时候

"x = ALL (...)": The value must match all the values in the list to evaluate to TRUE.所有值都要匹配

"x != ALL (...)": The value must not match any values in the list to evaluate to TRUE.至少有一个值不匹配

"x > ALL (...)": The value must be greater than the biggest value in the list to evaluate to TRUE.大于最大的值

"x < ALL (...)": The value must be smaller than the smallest value in the list to evaluate to TRUE.小于最小的值

"x >= ALL (...)": The value must be greater than or equal to the biggest value in the list to evaluate to TRUE.大于等于最大的值

"x <= ALL (...)": The value must be smaller than or equal to the smallest value in the list to evaluate to TRUE.小于等于最小的值


4. 大于10部门最小工资的雇员有哪些?

select ename,sal 

from emp

where sal> (select min(sal) from emp where deptno=10);


select ename,sal 

from emp

where sal > any (select sal from emp where deptno=10);   --any 大于任何一个,那不就是最小的么??,任意一个


5. 当any后面接子查询的时候

"x = ANY (...)": The value must match one or more values in the list to evaluate to TRUE.至少匹配一个值

"x != ANY (...)": The value must not match one or more values in the list to evaluate to TRUE.一个值都不匹配

"x > ANY (...)": The value must be greater than the smallest value in the list to evaluate to TRUE.大于最小值

"x < ANY (...)": The value must be smaller than the biggest value in the list to evaluate to TRUE.小于最大值

"x >= ANY (...)": The value must be greater than or equal to the smallest value in the list to evaluate to TRUE.大于等于最小值

"x <= ANY (...)": The value must be smaller than or equal to the biggest value in the list to evaluate to TRUE.小于等于最大值


6. 工资最高的人是谁?

select ename from emp

where sal=(select max(sal) from emp);


7. 和ALLEN同部门,工资高于MARTIN的雇员有哪些?

select ename from emp

where deptno=(select deptno from emp where ename='ALLEN')

and sal>(select sal from emp where ename='MARTIN');


8. 工作和部门与SMITH相同,工资高于JAMES的雇员有哪些?

select ename from emp

where (job,deptno)=(select job,deptno from emp where ename='SMITH')

and sal>(select sal from emp where ename='JAMES');



二、FROM子句中的子查询

1. 工资高于本部门平均工资的人(拿上游工资的人)有哪些?

    ①求出每个部门的平均工资,把这个作为一张表

    ②使用emp表和平均工资表进行关联,

select ename,sal,avgsal,e.deptno

from emp e,

(select avg(sal) avgsal,deptno 

from emp

group by deptno) b

where e.deptno=b.deptno

and e.sal>b.avgsal;


三、伪列:rownum 

特点:先有结果集在有rownum,是对结果集的一个编号


1. 工资前五名的人?(TOP-N 分析)

    ①先把工资排序

    ②在使用rownum限结果集(为什么不在第一步就使用rownum限定结果集?执行顺序的问题,where要比order by先执行,获取rownum<6的时候还没来得及排序在从emp里面拿出来

select ename,sal

from emp

where sal in

(select sal 

from (select distinct sal from emp order by sal desc)

where rownum<6)

order by sal desc;


3. 工资6~10的人?

    ①先把工资排序

    ②把工资排名在6~10的拿出来,由于不能使用rownum>6 and xxx<10这样,所以要加一步,把rownum变成id列,这样就又构造成一个结果集

    ③把上一个结果集中id为6~10的条目拿出来

    ④和emp关联

select ename,sal from emp 

where sal in 

(select sal from 

(select rownum rn,sal 

from (select distinct sal 

      from emp order by sal desc))

where rn between 6 and 10)

order by sal desc;

您可能感兴趣的文档:

--结束END--

本文标题: Oracle-子查询

本文链接: https://www.lsjlt.com/news/38988.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle 查询转换之子查询展开
    概念:子查询展开(Subquery Unnesting)是优化器处理带子查询的目标sql的一种优化手段,它是指优化器不再将目标sql中子查询当作一个独立的处理单元来单独执行,而是将该子查询转换为它自身和外部...
    99+
    2024-04-02
  • Oracle 笔记之子查询
    子查询当我们的一个操作需要基于另一个查询记过,那么就先行执行的这个查询就是子查询子查询分为:单行单列子查询:查的结果只有一行,且只有一个字段多行单列子查询:查询出来的结果有多行,但只有一列 多行多列子查询查...
    99+
    2024-04-02
  • oracle子查询怎么用
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-21
  • 怎么在oracle中查询操作子查询
    怎么在oracle中查询操作子查询?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、子查询语法SELECT select_l...
    99+
    2024-04-02
  • Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
    mysql子查询 子查询分为: 列中子查询 单列单行表子查询 必须有别名条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表:...
    99+
    2023-09-04
    mysql sql 数据库
  • MySQL子查询详解(单行子查询、多行子查询与相关子查询)
    目录0.概念1.需求分析与问题解决1.1提出具体问题:1.2 子查询的基本使用: 子查询的基本语法结构:1.3 子查询的分类2.单行子查询2.1实例:2.2空值问题2.3非法使用子查...
    99+
    2024-04-02
  • MySQL子查询(嵌套查询)
    子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入。 在SELECT 子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一 个表或者多个表。子查询中常用的操作符有 AN...
    99+
    2023-09-04
    mysql 数据库 sql Powered by 金山文档
  • MYSQL——子查询
       MYSQL的子查询1   求平均值   SELECT AVG (字段 如good_price) FROM  tdb_表名;...
    99+
    2024-04-02
  • Oracle在PL/SQL中使用子查询
    目录一、概述1、单行子查询(子查询只返回一行)2、多行单列子查询(子查询返回多行)3、多列子查询二、在DDL语句中使用子查询1、create table2、create View3、...
    99+
    2024-04-02
  • Oracle REGEXP_LIKE模糊查询用法例子
    目录1、函数介绍2、使用此函数不区分大小写2-1、LIKE 函数2-2、REGEXP_LIKE 函数3、多条件3-1、多个OR条件时,LIKE函数就不能满足需求了。3-2、AND :既有A又有B3-3、检索以某个字符串开...
    99+
    2022-11-19
    oracle regexp_like模糊查询 oracle模糊查询like语句 Oracle模糊查询
  • 怎么理解Oracle数据库中的多表查询,分组查询,子查询
    本篇内容介绍了“怎么理解Oracle数据库中的多表查询,分组查询,子查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • Oracle与PostgreSQL子查询有什么不同
    本篇内容主要讲解“Oracle与PostgreSQL子查询有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle与PostgreSQL子查询有什么...
    99+
    2024-04-02
  • mysql标量子查询和非法子查询的区别
    这篇文章主要讲解了“mysql标量子查询和非法子查询的区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql标量子查询和非法子查询的区别”吧!#whe...
    99+
    2024-04-02
  • MySQL基础-子查询
    文章目录 MySQL基础-子查询一、子查询概念1、什么是子查询2、子查询的分类 二、单行子查询1、单行比较操作符2、基本子查询3、HAVING 子查询4、CASE中的子查询5、子查询其他问题 三、多行子查询1、多...
    99+
    2023-12-22
    mysql 数据库 sql
  • mysql的in+子查询
    【mysql最糟糕的子查询:in+子查询】 select * from film where film_id in (select film_id from film_actor where acto...
    99+
    2023-08-18
    mysql
  • Laravel:whereIn子查询
    文档 https://learnku.com/docs/laravel/9.x/queries/12246 示例如下 $users = User::whereNotIn('id', func...
    99+
    2023-09-01
    php laravel
  • oracle中with语句中可以套子查询吗
    oracle 的 with 子句允许嵌套子查询,通过创建子查询别名来增强可读性和可维护性,优化性能并简化复杂查询结构。 Oracle with子句中嵌套子查询 答案: 可以 详细说明:...
    99+
    2024-05-09
    oracle
  • mysql中怎么实现查询和子查询
    这篇文章给大家介绍mysql中怎么实现查询和子查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、查询的五种子句        wher...
    99+
    2024-04-02
  • MySQL如何在查询中使用子查询
    MySQL中可以在查询中使用子查询来实现更复杂的查询逻辑。子查询是一个嵌套在主查询中的查询语句,通常用于获取主查询中某些条件的结果,...
    99+
    2024-03-06
    MySQL
  • 详解MySQL子查询(嵌套查询)、联结表、组合查询
    一、子查询 MySQL 4.1版本及以上支持子查询 子查询:嵌套在其他查询中的查询。 子查询的作用: 1、进行过滤: 实例1:检索订购物品TNT2的所有客户的ID = + 一般,在WHERE...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作