在 where子句中使用子查询(一)
目录
子查询返回单行单列
查询公司工资最低的员工信息
查找公司雇佣最早的员工信息
子查询返回单行多列
查询与 ALLEN 工资相同,职位相同的所有员工信息
子查询返回多行单列
IN 操作
查询职位是“MANAGER”的所有员工的薪水
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
where子句主要是进行数据的筛选。通过分析可以发现,单行单列、多行单列、单行多列都可以在 where子句中出现
子查询返回单行单列
查询公司工资最低的员工信息
SQL> set linesize 250
SQL> select *2 from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7369 SMITH CLERK 7902 17-12月-80 800 207499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 307521 WARD SALESMAN 7698 22-2月 -81 1250 500 307566 JONES MANAGER 7839 02-4月 -81 2975 207654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 307698 BLAKE MANAGER 7839 01-5月 -81 2850 307782 CLARK MANAGER 7839 09-6月 -81 2450 107839 KING PRESIDENT 17-11月-81 5000 107844 TURNER SALESMAN 7698 08-9月 -81 1500 0 307900 JAMES CLERK 7698 03-12月-81 950 307902 FORD ANALYST 7566 03-12月-81 3000 207934 MILLER CLERK 7782 23-1月 -82 1300 108989 HELLO
可以看出,最低工资是 800,但是不可能直接使用 80 这个数据
因为这个数据需要统计出来,而要想知道这个内容,可以利用 min() 函数
SQL> select min(sal)2 from emp;MIN(SAL)
----------800
第二步:以上的查询会返回单行单列的数据,本质就是一个数值
如果现在给了数值,就可以直接 利用 where子句筛选所需要的数据行
SQL> select * from emp2 where sal=(select min(sal) from emp);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7369 SMITH CLERK 7902 17-12月-80 800 20
查找公司雇佣最早的员工信息
雇佣最早的员工一定是雇佣日期最小的,那么使用 min() 函数完成
SQL> select min(hiredate)2 from emp;MIN(HIREDATE)
--------------
17-12月-80
以上的查询会返回单行单列的数据,所以可以直接在 where子句中使用
SQL> select *2 from emp3 where hiredate=(select min(hiredate) from emp);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7369 SMITH CLERK 7902 17-12月-80 800 20
子查询返回单行多列
查询与 ALLEN 工资相同,职位相同的所有员工信息
现在需要同时比较工资与职位,首先应该查询到 ALLEM的工资与职位
SQL> select sal,job2 from emp3 where ename='ALLEN';SAL JOB
---------- ------------------1600 SALESMAN
此时返回了单行两列的数据信息,而要进行比较的时候需要同时满足
SQL> select * from emp2 where (sal,job)=(select sal,job from emp where ename='ALLEN');EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
子查询返回多行单列
如果说子查询返回了多行单列的数据,实质上就相当于告诉用户一个数据的操作范围
而如果要想 进行范围的判断
在 WHERE 子句里面主要提供 3 个运算符: IN、ANY、ALL
IN 操作
IN 操作指的是内容在指定的范围内
查询职位是“MANAGER”的所有员工的薪水
SQL> select sal2 from emp3 where job='MANAGER';SAL
----------297528502450
返回的值是多行单列的记录,可以发现职位是“MANAGER”的,
员工的薪水有 3 种: 2975,2850和 2450。
再来看下面这个查询语句
SQL> select * from emp2 where sal in(select sal from emp where job='MANAGER');EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7566 JONES MANAGER 7839 02-4月 -81 2975 207698 BLAKE MANAGER 7839 01-5月 -81 2850 307782 CLARK MANAGER 7839 09-6月 -81 2450 10
对 IN 操作还可以使用 NOT IN 进行,指的是内容不在指定的范围内
SQL> select * from emp2 where sal not in(select sal from emp where job='MANAGER');EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 307844 TURNER SALESMAN 7698 08-9月 -81 1500 0 307839 KING PRESIDENT 17-11月-81 5000 107900 JAMES CLERK 7698 03-12月-81 950 307934 MILLER CLERK 7782 23-1月 -82 1300 107902 FORD ANALYST 7566 03-12月-81 3000 207369 SMITH CLERK 7902 17-12月-80 800 207521 WARD SALESMAN 7698 22-2月 -81 1250 500 307654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
在讲解 NOT IN 操作的时候曾经说过一个问题,不能够为 null,这一概念在此处照样适用
SQL> select * from emp2 where comm not in(select comm from emp);未选定行
主要原因就是因为在子查询“ (SELECT comm FROM emp) ”中出现了 null

相关文章:
在 where子句中使用子查询(一)
目录 子查询返回单行单列 查询公司工资最低的员工信息 查找公司雇佣最早的员工信息 子查询返回单行多列 查询与 ALLEN 工资相同,职位相同的所有员工信息 子查询返回多行单列 IN 操作 查询职位是“MANAGER”的所有员工的薪水 Oracle从入门到总裁:https://bl…...
kafka为什么性能这么高?
Kafka系统架构 Kafka是一个分布式流处理平台,具有高性能和可伸缩性的特点。它使用了一些关键的设计原则和技术,以实现其高性能。 上图是Kafka的架构图,Producer生产消息,以Partition的维度,按照一定的路由策略&#x…...
安卓OpenGL添加水印并录制(二)---抖音录制原理
文章目录 前文回顾音频处理留个小思考总结 本文首发地址 https://h89.cn/archives/146.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 源码地址: Gitee: OpenGLRecorder 通过 前文 我们知道了如何采集 Camera 视频,叠加水印、贴纸保存为MP4,…...
动态绑定样式,uniapp,用三元运算动态绑定多个class类样式,动态绑定的样式可以和原始样式共存
介绍 | uni-app官网 vue、uniapp中动态添加绑定style、class 9种方法实现_vue style动态绑定-CSDN博客 uniapp使用三元运算符动态绑定元素的style样式_uniapp style动态绑定-CSDN博客 对象写法,可以写多个class类 class类的名字:判断条件,最后结果只有…...
神经网络基础——激活函数的选择、参数初始化
一、神经网络 1、神经网络 人工神经网络(Artificial Neural Network,即ANN)也简称为神经网络(NN)是一种模仿生物神经网络结构 和功能的计算模型。 2、基本部分 输入层:输入 x 输出层:输出 y 隐…...
ElasticSearch之聚合aggs
写在前面 本文看下es的聚合相关内容。 1:什么是聚合 即,数据的统计分析。如sum,count,avg,min,max,分组等。 2:支持哪些聚合类型 2.1:bucket aggregation 对满足特…...
Android 系统定位和高德定位
文章目录 Android 系统定位和高德定位系统定位工具类封装LocationManager使用 高德定位封装高德地图使用 Android 系统定位和高德定位 系统定位 工具类 public class LocationUtils {public static final int REQUEST_LOCATION 0xa1;/*** 判断定位服务是否开启*/public sta…...
Day20_网络编程(软件结构,网络编程三要素,UDP网络编程,TCP网络编程)
文章目录 Day20 网络编程学习目标1 软件结构2 网络编程三要素2.1 IP地址和域名1、IP地址2、域名3、InetAddress类 2.2 端口号2.3 网络通信协议1、OSI参考模型和TCP/IP参考模型2、UDP协议3、TCP协议 2.4 Socket编程 3 UDP网络编程3.1 DatagramSocket和DatagramPacket1、Datagram…...
https://registry.npm.taobao.org淘宝npm镜像仓库地址更新
在工作中有遇见获取淘宝的npm镜像存在问题,图示如下的报错: 根据报错的内容是说 https://registry.npm.taobao.org地址访问失败了,然后通过排查发现淘宝的npm镜像仓库地址有更新了。需要使用最新的地址 旧的淘宝镜像仓库:https://…...
离散数学(一) 集合
属于关系 表示 枚举法; 叙述法; 文氏图法 基数 空集 全集 全集是相对唯一的 相等关系 有相同元素看作一个元素 包含关系 幂集 集合运算 并集 交集 补集 差集 对称差集 定理 可数集合与不可数集合 自然数集 等势 如果存在集合A到集合B的双射(又称一一…...
IOS不使用默认的mainStroryboard作为首个controller的方法
步骤1: 删除info.plist文件下的一条配置,如图 步骤2: 编辑AppDelegate.m,参考以下代码 interface AppDelegate () //property (strong, nonatomic) UIWindow * window; property(nonatomic,strong) UIWindow * win; property(…...
Qt(C++)面试题 | 精选25项常问
面试是每个求职者都必须经历的一关,而QT面试更是需要面试者有深厚的编程基础和丰富的实战经验。下面我们为大家整理了25道QT面试题,希望能够帮助大家在求职路上获得成功。 Qt 中常用的五大模块是哪些? Qt 中常用的五大模块包括: QtCore:提供了 Qt 的核心功能,例如基本的…...
个人博客系列-环境配置-gitee(2)
注册gitee账户 地址:https://gitee.com/ 此步骤省略 新建仓库 执行以下命令 即可 拉取代码 创建目录 mkdir myCode && cd myCode 登录gitee找到项目,点击克隆,拉取代码 连接远程仓库命令 git remote add origin 仓库地址http…...
DevOps 周期的 6 个 C
中型到大型软件开发项目涉及许多人员、多个团队、资源、工具和开发阶段。它们都需要以某种方式进行管理和简化,不仅可以获得所需的产品,而且还要确保将来在不断变化的环境下易于管理和维护。组织通常遵循许多项目管理模型和技术。DevOps 是其中之一&…...
九、计算机视觉-形态学基础概念
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、形态学的基本概念1.1 定义1.2 结构元素1.3 形态学操作 二、形态学的应用总结 前言 现在开始后面几课将介绍计算机视觉中的形态学理论和技术,包…...
杰发科技AC7801——SRAM 错误检测纠正
0.概述 7801暂时无错误注入,无法直接进中断看错误情况,具体效果后续看7840的带错误注入的测试情况。 1.简介 2.特性 3.功能 4.调试 可以看到在库文件里面有ecc_sram的库。 在官方GPIO代码里面写了点测试代码 成功打开2bit中断 因为没有错误注入&#x…...
普中51单片机学习(AD转换)
AD转换 分辨率 ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度的1/(2^12)。 一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V1/(2^12 )2.4mV。 量化误差 …...
YoloV8改进策略:主干网络改进|MogaNet——高效的多阶门控聚合网络
文章目录 摘要1、简介2、相关工作2.1、视觉Transformers2.2、ViT时代的卷积网络3、从多阶博弈论交互的角度看表示瓶颈4、方法论4.1、MogaNet概述4.2、多阶门控聚合4.3、通过通道聚合进行多阶特征重新分配4.4、实现细节5、实验5.1、ImageNet分类5.2、密集预测任务5.3、消融实验和…...
Sora:OpenAI引领创新浪潮的AI视频模型
Sora:OpenAI引领创新浪潮的AI视频模型 OpenAI作为人工智能领域的佼佼者,接下来,让我们一起深入了解Sora的技术特点、应用场景以及它对未来创作方式的潜在影响。 首先,让我们来探讨Sora的技术特点。Sora是一种基于深度学习的视频生…...
torch报错:[winerror 126] 找不到指定的模块torch_python.dll“ or one of its dependencies.
[winerror 126] 找不到指定的模块。 error loading "d:\miniconda\envs\action_env\lib\site-packages\torch\lib\torch_python.dll" or one of its dependencies. 在使用这个yolov5模块的时候发现了这个错误,错误原因是因为python版本和torch版本冲突。…...
SWOT卫星宽刈幅干涉测高技术如何革新全球水资源监测(持续追踪)
1. 从太空看地球的水:SWOT卫星的独特视角 想象一下,如果有一双眼睛能在太空中看清地球上每一条河流的细微波动、每一个湖泊的水位变化,甚至海洋表面毫米级的起伏,那会是什么场景?2022年12月升空的SWOT卫星正在将这个想…...
Matlab数字图像处理核心项目实践:包含直方图均衡、空间过滤器增强、傅立叶变换与频域滤波、噪...
Matlab数字图像处理 包含以下内容: 项目 1:直方图均衡 项目 2:使用空间过滤器增强图像 项目 3:频域中的傅立叶变换和滤波 项目 4:噪声模型和降噪 项目 5:使用逆滤波器和维纳滤波器进行图像恢复 项目 6&…...
超越GUI:用Tcl命令流高效编辑Tessent DftSpecification的三种进阶玩法
超越GUI:用Tcl命令流高效编辑Tessent DftSpecification的三种进阶玩法 在大型SoC项目中,频繁修改IJTAG网络结构是每位资深DFT工程师的日常。当设计迭代进入深水区,图形界面操作和手动文本编辑的效率瓶颈会愈发明显——每次增减SIB、调整TDR位…...
在Ubuntu 22.04上为Orange Pi 3B编译内核6.6:一份避坑与加速指南
在Ubuntu 22.04上为Orange Pi 3B编译内核6.6:一份避坑与加速指南 1. 环境准备与工具链优化 Orange Pi 3B作为一款基于Rockchip RK3566的开发板,其内核编译过程需要特别注意工具链的选择和环境配置。以下是经过实战验证的优化方案: 必备工具安…...
【Java Web学习 | 第十篇】JavaScript(4) 对象
【Java Web学习 | 第十篇】JavaScript(4) - 对象(Object)深度详解(2026最新版) 恭喜你完成数组与函数进阶! 对象(Object) 是 JavaScript 中最重要、最核心的数据结构。在 Java Web 开发中&…...
如何通过智能求职助手提升职位时间筛选效率?揭秘高效求职新方法
如何通过智能求职助手提升职位时间筛选效率?揭秘高效求职新方法 【免费下载链接】boss-show-time 展示boss直聘岗位的发布时间 项目地址: https://gitcode.com/GitHub_Trending/bo/boss-show-time 在当今竞争激烈的就业市场中,职位时间筛选已成为…...
Qwen2-VL-2B-Instruct实战教程:Text-Text语义距离计算在合同比对中的应用
Qwen2-VL-2B-Instruct实战教程:Text-Text语义距离计算在合同比对中的应用 1. 引言:当合同审查遇上AI语义理解 想象一下这个场景:你手头有两份合同,一份是标准模板,另一份是客户发来的修改版。你需要快速找出两份合同…...
hadoop+spark+hive基于大数据的食谱分析与个性化推荐系统 美食推荐系统 美食可视化 大数据毕业设计
前言随着互联网技术的快速发展,人们获取信息的方式发生了巨大变化。特别是在食品领域,用户渴望获得更加个性化的推荐服务。大数据分析技术的出现为满足这一需求提供了可能。并据此提供精准的食谱推荐,从而提升用户体验。系统架构设计本项目 采…...
立创·地阔星开发板开箱测评:除了点灯,STM32F103C8T6还能怎么玩?(附资源下载与避坑指南)
立创地阔星开发板深度探索:从开箱到创意项目实战 拆开快递包装的那一刻,这块蓝色PCB板安静地躺在防静电袋里——这就是最近在创客圈备受关注的立创地阔星开发板。作为一款基于STM32F103C8T6芯片的高性价比开发平台,它不仅适合初学者入门&…...
从取证到防御:实战解析BadUSB攻击与USB流量异常检测(Wireshark实战)
从取证到防御:实战解析BadUSB攻击与USB流量异常检测(Wireshark实战) 在企业内网安全防护中,USB设备带来的威胁往往被低估。去年某金融机构遭遇的供应链攻击事件中,攻击者通过伪装成键盘的BadUSB设备,在3分钟…...
