可以用 ALL 或 ANY 关键字修改引入子查询的比较运算符。SOME 是与 ANY 等效的 SQL-92 标准。

通过修改的比较运算符引入的子查询返回零个值或多个值的列表,并且可以包括 GROUP BY 或 HAVING 子句。这些子查询可以用 EXISTS 重新表述。

以 > 比较运算符为例,>ALL 表示大于每一个值。换句话说,它表示大于最大值。例如,>ALL (1, 2, 3) 表示大于 3。>ANY 表示至少大于一个值,即大于最小值。因此 >ANY (1, 2, 3) 表示大于 1。

若要使带有 >ALL 的子查询中的行满足外部查询中指定的条件,引入子查询的列中的值必须大于子查询返回的值列表中的每个值。

同样,>ANY 表示要使某一行满足外部查询中指定的条件,引入子查询的列中的值必须至少大于子查询返回的值列表中的一个值。

下面的查询提供一个由 ANY 修改的比较运算符引入的子查询的示例。它查找定价高于或等于任何产品子类别的最高定价的产品。

USE AdventureWorks;

GO

SELECT Name

FROM Production.Product

WHERE ListPrice >= ANY

(SELECT MAX (ListPrice)

FROM Production.Product

GROUP BY ProductSubcategoryID)

对于每个产品子类别,内部查询查找最高定价。外部查询查看所有这些值,并确定定价高于或等于任何产品子类别的最高定价的单个产品。如果 ANY 更改为 ALL,查询将只返回定价高于或等于内部查询返回的所有定价的那些产品。

如果子查询不返回任何值,那么整个查询将不会返回任何值。

=ANY 运算符与 IN 等效。例如,若要查找 Adventure Works Cycles 生产的所有轮子产品的名称,可以使用 IN 或 =ANY。

--Using =ANY

USE AdventureWorks;

GO

SELECT Name

FROM Production.Product

WHERE ProductSubcategoryID =ANY

(SELECT ProductSubcategoryID

FROM Production.ProductSubcategory

WHERE Name = 'Wheels')

--Using IN

USE AdventureWorks;

GO

SELECT Name

FROM Production.Product

WHERE ProductSubcategoryID IN

(SELECT ProductSubcategoryID

FROM Production.ProductSubcategory

WHERE Name = 'Wheels')

下面是任一查询的结果集:

Name

--------------------------------------------------

LL Mountain Front Wheel

ML Mountain Front Wheel

HL Mountain Front Wheel

LL Road Front Wheel

ML Road Front Wheel

HL Road Front Wheel

Touring Front Wheel

LL Mountain Rear Wheel

ML Mountain Rear Wheel

HL Mountain Rear Wheel

LL Road Rear Wheel

ML Road Rear Wheel

HL Road Rear Wheel

Touring Rear Wheel

(14 row(s) affected)

但是,< >ANY 运算符则不同于 NOT IN:< >ANY 表示不等于 a,或者不等于 b,或者不等于 c。NOT IN 表示不等于 a、不等于 b 并且不等于 c。<>ALL 与 NOT IN 表示的意思相同。

例如,以下查询查找位于任何销售人员都不负责的地区的客户。

Use AdventureWorks;

GO

SELECT CustomerID

FROM Sales.Customer

WHERE TerritoryID <> ANY

(SELECT TerritoryID

FROM Sales.SalesPerson)

结果包含除销售地区为 NULL 的客户以外的所有客户,因为分配给客户的每个地区都由一个销售人员负责。内部查询查找销售人员负责的所有销售地区,然后对于每个地区,外部查询查找不在任一地区的客户。

由于同一原因,当在此查询中使用 NOT IN 时,结果将不包含任何客户。

还可以使用 < >ALL 运算符获得相同的结果,该运算符与 NOT IN 等效。

all any 或 此运算符后面必须跟_用 ANY、SOME 或 ALL 修改的比较运算符相关推荐

  1. mysql 运算符转义_我的MYSQL学习心得(五) 运算符

    MYSQL中的运算符很多,这一节主要讲MYSQL中有的,而SQLSERVER没有的运算符 安全等于运算符(<=>) 这个操作符和=操作符执行相同的比较操作,不过<=>可以用来判 ...

  2. c 语言 按位与或非运算符,C++中的按位与、按位与或|、按位异或^运算符详解

    按位与运算符:& 语法 expression & expression 备注 表达式可以是其他"与"表达式,或(遵循下面所述的类型限制)相等表达式.关系表达式.加法 ...

  3. mysql检索有什么区别_检索行时,MySQL中AND或OR运算符有什么区别?

    AND,OR之间的区别在于,AND评估两个条件都必须为真,以使整体条件为真.OR求一个条件必须为真,以使整体条件为真. 让我们创建一个表-mysql> create table demo70 − ...

  4. python字符串与列表与运算_[Python学习笔记1]Python语言基础 数学运算符 字符串 列表...

    这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...

  5. 算术运算符、数学函数Math、数据类型转换、自增自减运算符、关系逻辑运算符、位运算符、括号及运算符级别

    文章目录 0.思维导图 1.算术运算符 2.数学函数与常量 3.数值类型之间的转换 (1)定义数据类型后自动转换 (2)二元运算时的自动转换 (3)强制类型转换 4.结合赋值与运算符 5.自增与自减运 ...

  6. c语言自增自减5运算符详解,巧用C语言中的自增自减运算符

    黄建琼 摘要:自增自减运算符在C语言的编程过程中经常用到,具有重要的作用,而灵活使用自增自减运算符则是个难点.该文从几个例子入手,观察运行的结果,对结果进行分析,最后得出结论.以期能使初学者避重就轻, ...

  7. java 异或_脚本语言系列之Java | Java中的运算符

    本文主要介绍java中的常见运算符,如算术运算符.赋值运算符.比较运算符.逻辑运算符.位运算符.三目运算符等. 一.几个概念 int a = 3 + 4; +.=就是操作符,是算术运算符,我们还有其他 ...

  8. java:数字转string 报空指针_《java基础》我踩过三元运算符的坑

    简单介绍 三元运算符(又称三目运算符)大家肯定肯定都使用过,我就简单介绍一下,不在赘述. 三元元素的格式:[条件控制语句] ? [表达式1] : [表达式2]. 优点: 一些简单的逻辑判断三元运算符可 ...

  9. python 比较运算符放在列表中_在Python3中将运算符放在列表中

    我想把操作符作为一个列表,然后从列表中调用一个元素作为操作符.在 如果我没有在运算符周围加引号,那么列表中逗号的语法错误:File "p22.py", line 24 cat = ...

最新文章

  1. 《Implementing QuantLib》译后记
  2. 工业机器人什么情况下会出现奇点_【怎么解释机器人奇点造成的结果?】-工业-有米下载-6miu.com...
  3. Android 性能优化案例
  4. python os 遍历 子目录中所有文件_Python处理文件系统的10种方法 !
  5. 免费的微信编辑器插件调用
  6. FastDFS分布式架构,详细安装步骤,测试;Nginx中配置FastDFS,并提供优化,下载方法,楼主已测
  7. 全球及中国第三方物流行业竞争格局与十四五运作模式咨询报告2022版
  8. 去水印小程序好做吗?赚钱吗?
  9. 优动漫PAINT是什么?有哪些功能和特色
  10. 今年很火的 AI 绘画怎么玩
  11. FME进阶视频教程: FME使用技巧之高级扇出,讲解在FME中输出数据的高级方式,满足数据个性化分类输出的需求
  12. 基于HTTP可供浏览器调用的本地打印程序
  13. (翻译)Decision-Making in Driver-Automation Shared Control
  14. SPI 通信协议 最详细解读!!!
  15. File System 定额(配额查询)
  16. 默认语言及Android平台语言支持状态(印度语)Android N 设置中语言列表介绍
  17. 从输入url到页面渲染完成经历的那些事~
  18. Window应急响应(二):蠕虫病毒
  19. 网站关键词优化的五点原则
  20. 坚果手机如何获取root权限

热门文章

  1. UNIX环境编程学习笔记(19)——进程管理之fork 函数的深入学习
  2. 使用Go开发gRPC
  3. lua的面向对象编程,封装,继承,多态的实现
  4. 多级嵌套json格式
  5. 如何写一手好 SQL 【频繁出现慢SQL告警的优化方案】
  6. MapReduce 源码分析(一)准备阶段
  7. mybatis实现CRUD(不使用DAO)
  8. javaSE各阶段练习题--面向对象-多态-抽象类-接口
  9. leetcode 399. Evaluate Division | 399. 除法求值(图的邻接表,DFS)
  10. 带你理清 Java 混乱的日志体系 - log4j、logback、log4j2、jcl、SLFJ 究竟是啥关系?