ANY、ALL 和 SOME关键字的用法

前言

SOME、ANY、ALL是一种逻辑运算符,作用是将子查询返回的单列值的集合与查询的单个值作比较。SOME、ANY、ALL前面需跟比较运算符(>,<,>=,<=,=,<>)。这里只有当子查询中的值为单值 或者与子查询中的值完全相等时,才可以使用 = 号,否则就不能使用 = 号。SOME 是 ANY的一个同义词,功能相同。

在使用 ANY、ALL 时,前面必须跟比较运算符(>,<,>=,<=,=,<>),后面跟子查询语句。

一、ANY 关键字

功能类似于逻辑原算符 或( or )。

select * from table where a > any( ... )

-- 如果 any 后面跟的子查询返回的数据集中包含了 result1,result2,result3 三个值。

那么,上面的语句就可以看作:

select * from table where a > result1 or a > result2 or a > result3;

-- 即a大于子查询中的任意一个,等同于a大于子查询的最小值即可。

二、ALL 关键字

功能类似于逻辑运算符 且( and )。

select * from table where a > all( ... )

-- 如果 any 后面跟的子查询返回的数据集中包含了 result1,result2,result3 三个值。

那么,上面的语句就可以看作:

select * from table where a > result1 and a > result2 and a > result3;

-- 即a大于子查询中的每一个,等同于a大于子查询的最大值。

三、SOME 关键字

SOME 是 ANY的一个同义词,功能相同。功能类似于逻辑原算符 或( or )。

select * from table where a > any( ... )

-- 如果 any 后面跟的子查询返回的数据集中包含了 result1,result2,result3 三个值。

那么,上面的语句就可以看作:

select * from table where a > result1 or a > result2 or a > result3;

-- 即a大于子查询中的任意一个,等同于a大于子查询的最小值即可。

相关推荐
施嘉伟14 小时前
一次生产环境 SQL 不走索引的排查过程
数据库·sql
踏浪无痕14 小时前
SQLInsight:从JDBC底层到API调用的零侵入SQL监控方案
数据库·后端·开源
小宇的天下14 小时前
Calibre nmDRC Results(19-1)
服务器·数据库·oracle
慕容雪_15 小时前
运维笔记-网络共享
运维·笔记·网络共享
浩瀚地学15 小时前
【Java】异常
java·开发语言·经验分享·笔记·学习
Web项目开发15 小时前
Mysql创建索引的SQL脚本,复制粘贴即可使用
数据库·sql·mysql
Groundwork Explorer15 小时前
WSL Python Kivy Buildozer APK打包笔记
笔记
Waloo15 小时前
SQL Server 2017 EXISTS 关键字 完整用法详解(最全 + 最优写法 + 性能对比)
sql·sql server
gravity_w15 小时前
UV常用命令总结
经验分享·笔记·uv
晴天¥16 小时前
Oracle如何在DBeaver上进行登录
数据库·oracle