当前位置: 首页 > news >正文

在 where子句中使用子查询(二)

目录

ANY

=ANY :功能上与 IN 是没有任何区别的

 >ANY :比子查询返回的最小值要大

ALL

>AL :比子查询返回的最大值要大

EXISTS() 判断

NOT EXISTS 


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

在 WHERE 子句里面主要提供 3 个运算符: IN、ANY、ALL

前面讲了IN

ANY

ANY 操作实质上有 3 种子语法

=ANY :功能上与 IN 是没有任何区别的

SQL> select * from emp2  where sal=any(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

 >ANY :比子查询返回的最小值要大

SQL> select * from emp2  where sal>any(select sal from emp where job='MANAGER');EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7839 KING                 PRESIDENT                     17-11月-81           5000                    107902 FORD                 ANALYST                  7566 03-12月-81           3000                    207566 JONES                MANAGER                  7839 02-4月 -81           2975                    207698 BLAKE                MANAGER                  7839 01-5月 -81           2850                    30

 因为子查询中有 3 个值: 2975、2850 和 2450,最小的是 2450

所以

>ANY 操作返回所有比 2450 大的记录

<ANY :比子查询返回的最大的值要小

SQL> select * from emp2  where sal<any(select sal from emp where job='MANAGER');EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7369 SMITH                CLERK                    7902 17-12月-80            800                    207900 JAMES                CLERK                    7698 03-12月-81            950                    307521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         307654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         307934 MILLER               CLERK                    7782 23-1月 -82           1300                    107844 TURNER               SALESMAN                 7698 08-9月 -81           1500          0         307499 ALLEN                SALESMAN                 7698 20-2月 -81           1600        300         307782 CLARK                MANAGER                  7839 09-6月 -81           2450                    107698 BLAKE                MANAGER                  7839 01-5月 -81           2850                    30

 因为子查询中有 3 个值: 2975、2850 和 2450,最大的是 2975

所以

<ANY 操作返回所有比 2975 小的记录

ALL

AL 操作有两种使用形式 

>AL :比子查询返回的最大值要大

SQL> select * from emp2  where sal>ALL(select sal from emp where job='MANAGER');EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------7902 FORD                 ANALYST                  7566 03-12月-81           3000                    207839 KING                 PRESIDENT                     17-11月-81           5000                    10

因为子查询中有 3 个值: 2975、2850 和 2450,最大的是 2975

所以

>AL 操作返回所有比 2975 大的记录

<AL :比子查询返回的最小值要小

SQL> select * from emp2  where sal<ALL(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         307934 MILLER               CLERK                    7782 23-1月 -82           1300                    107521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         307654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         307900 JAMES                CLERK                    7698 03-12月-81            950                    307369 SMITH                CLERK                    7902 17-12月-80            800                    20

因为子查询中有 3 个值: 2975、2850 和 2450,最小的是 2450

所以

>AL 操作返回所有比 2450 小的记录

EXISTS() 判断

SQL>   SELECT * FROM emp2    WHERE EXISTS( SELECT * FROM emp WHERE empno=7839) ;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

因为子查询“ (SELECT * FROM emp WHERE empno=7839) ”有查询结果,

所以 EXISTS() 就认为数据存在,外部查询可以查询出内容

SQL> select * from emp2  where exists(3  select 'hello' from dual where 1=1);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

EXISTS() 只关心子查询里面返回的是否有数据行,至于是什么数据行,它不关心

因此,上面的查 询语句实现的效果也是查询出数据表 emp 中全部记录

NOT EXISTS 

SQL> select * from emp2  where NOT exists(3  select 'hello' from dual where 1=2);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

相关文章:

在 where子句中使用子查询(二)

目录 ANY ANY &#xff1a;功能上与 IN 是没有任何区别的 >ANY &#xff1a;比子查询返回的最小值要大 ALL >AL &#xff1a;比子查询返回的最大值要大 EXISTS() 判断 NOT EXISTS Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209…...

TongWEB(东方通),部署WEB前后端项目步骤

我的系统: 银河麒麟桌面系统V10(SP1)(兆芯) 环境需要搭建好,什么redis,数据库等 1.准备项目前端war包 (我后端项目本就是war部署,jar转war自行百度一下吧) 进入前端打包好的dist文件夹,创建一个文件夹 WEB-INF ,再在 WEB-INF 里创建一个 web.xml 文件,文件内容: <web-…...

Vue中如何使用dayjs

Day.js中文网Day.js是一个极简的JavaScript库&#xff0c;可以为现代浏览器解析、验证、操作和显示日期和时间。https://dayjs.fenxianglu.cn/ 单位不区别大小写&#xff0c;支持复数和缩写形式 单位缩写描述 date D日期 [1,31]dayd星期 [0,6]&#xff08;星期日0&#xff0c…...

数据库-MySQL

建立索引 mysql 添加索引的三种方法 - krt-wanyi - 博客园 (cnblogs.com) 跨库联表查询 MySQL不同数据库不同表连表查询&#xff08;跨库连表查询&#xff09;-CSDN博客 关于微服务跨数据库联合查询的一些解决思路_微服务跨库联表查询-CSDN博客 同一个连接不同数据库前缀 …...

C语言每日一题(61)盛最多水的容器

题目链接 力扣 11 盛最多水的容器 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水…...

uni-app 经验分享,从入门到离职(四)——页面栈以及页面跳转的 API(开发经验总结)

文章目录 &#x1f4cb;前言⏬关于专栏 &#x1f3af;什么是页面栈&#x1f9e9;页面跳转方法&#x1f4cc; uni.navigateTo(OBJECT)&#x1f4cc; uni.redirectTo(OBJECT)&#x1f4cc; uni.reLaunch(OBJECT)&#x1f4cc; uni.switchTab(OBJECT)&#x1f4cc; uni.navigateBa…...

Go Module常用命令

Go Module常用命令TOC Go Module常用命令 go mod init #初始化go.mod go mod tidy #更新依赖文件 go mod download #下载依赖文件 go mod vendor #将依赖转移至本地的vendor文件 go mod edit #手…...

ubuntu压缩和解压

-c 创建 -x 解压 -v 显示过程 -f 文件名 xz格式 tar -tf arm-linux-gnueabi-5.4.0.tar.xz 查看压缩包的内容 tar -xf arm-linux-gnueabi-5.4.0.tar.xz -C / 解压 gz格式 t…...

华为HCIP Datacom H12-831 卷24

多选题 1、如图所示&#xff0c;某园区部署OSPF实现网络互通&#xff0c;其中Area1部署为NSSA区域。某工程师为了实现R1访问R4的环回口地址&#xff0c;在R4的OSPF进程中引入直连路由。以下关于该场景的描述,错误的有哪些项? A、在R4引入直连路由后&#xff0c;R1通过转换后的…...

react + Typescript 中 react有多少内置的类型 分别是什么

react Typescript 中 react有多少内置的类型 分别是什么 React 和 TypeScript 结合使用时&#xff0c;React 提供了一系列的内置类型&#xff08;也称为类型定义或类型别名&#xff09;来帮助你在 TypeScript 中编写类型安全的代码。这些类型定义涵盖了 React 的各个方面&…...

harbor(docker仓库)仓库部署 - 高可用

harbor&#xff08;docker仓库&#xff09;仓库部署 - 高可用 1. harbor高可用1.1 方案说明1. 双主复制2. 多harbor实例共享后端存储 1.2 部署高可用&#xff08;多harbor实例共享后端存储&#xff09;1. 服务器划分2. 安装harbor&#xff08;先部署一套Harbor&#xff0c;用于…...

题目 1262: 邮局选址问题

题目描述: 在一个按照东西和南北方向划分成规整街区的城市里&#xff0c;n个居民点散乱地分布在不同的街区中。用x 坐标表示东西向&#xff0c;用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2||y1-y2|度量…...

内核内存回收关键隐藏变量之page引用计数

在分析内核内存回收源码时&#xff0c;page引用计数并不显眼&#xff0c;但是page引用计数对page的内存回收至关重要。本文基于linux-4.18.0-240版本内核源码&#xff0c;总结下文件页page的引用计数的相关细节。首先是get_page()和put_page()函数&#xff0c;分别令page引用计…...

数据结构---链表的基本操作

头插法遍历链表尾插法头删法尾删法按位置插入数据按位置删除数据直接插入排序 链表翻转快慢指针 linklist.c #include <stdio.h> #include <stdlib.h> #include "./linklist.h"linklist* create_linklist(void) {linklist* head (linklist*)malloc(siz…...

异步框架Celery在Django中的运用

参考博客&#xff1a;https://www.cnblogs.com/pyedu/p/12461819.html 参考视频&#xff1a;01 celery的工作机制_哔哩哔哩_bilibili 定义&#xff1a;简单灵活、处理大量消息的分布式系统&#xff0c;专注于实时处理异步队列&#xff0c;支持任务调度 主要架构&#xff1a; …...

YOLOv5代码解读[02] models/yolov5l.yaml文件解析

文章目录 YOLOv5代码解读[02] models/yolov5l.yaml文件解析yolov5l.yaml文件检测头1--->耦合头检测头2--->解耦头检测头3--->ASFF检测头Model类解析parse_model函数 YOLOv5代码解读[02] models/yolov5l.yaml文件解析 yolov5l.yaml文件 # YOLOv5 &#x1f680; by Ult…...

智能搬运机器人|海格里斯将如何持续推进工业和物流的智能化升级与发展?

存取、搬运、分拣是物流行业中的通用功能&#xff0c;但具体到每个行业又十分不同&#xff0c;例如&#xff1a;新能源电池领域&#xff0c;它所搬运的东西是电池&#xff0c;50KG~200KG&#xff1b;快递行业领域&#xff0c;所要处理的物料是那种扁平件和信封等等&#xff0c;…...

linux之前后端项目部署与发布

目录 前言 简介 一、安装Nginx 二、后端部署 2.1多个tomcat负载均衡 2.2 负载均衡 2.3 后端项目部署 三、前端部署 1.解压前端 2.Nginx配置文件修改 3.IP域名映射 4.重启Nginx服务 前言 上篇博主已经讲解过了单机项目的部署linux之JAVA环境配置JDK&Tomcat&a…...

Python 高级语法:一切皆对象

1 “一切皆对象”是一种核心设计哲学 在编程领域&#xff0c;特别是面向对象编程&#xff08;OOP&#xff09;中&#xff0c;“一切皆对象”是一种核心设计哲学。这种哲学主张&#xff0c;无论是数据、函数、还是更复杂的结构&#xff0c;都可以被视为对象&#xff0c;并赋予…...

python jupyter notebook打开页面方便使用

如果没安装jupyter, 请安装&#xff1a; pip install jupyter notebook 运行jupyter notebook jupyter-notebook...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...