在本教程中,您将学习如何使用Oracle ANY运算符将值与列表或子查询进行比较。

Oracle ANY运算符简介

Oracle ANY运算符用于将值与子查询返回的值或结果集列表进行比较。下面举例说明ANY运算符与列表或子查询一起使用时的语法:

operator ANY ( v1, v2, v3)

operator ANY ( subquery)

在这个语法中:

ANY运算符前面必须有一个运算符,例如:=,!=,>,>=,

列表或子查询必须用圆括号包围。

使用ANY运算符将值与列表进行比较时,Oracle将初始条件扩展到列表的所有元素,并使用OR运算符将它们组合,如下所示:

SELECT

*

FROM

table_name

WHERE

c > ANY (

v1,

v2,

v3

);

Oracle将上述查询转换为以下内容:

SELECT

*

FROM

table_name

WHERE

c > v1

OR c > v2

OR c > v3;

如果使用ANY运算符将一个值与子查询返回的结果集进行比较,则Oracle使用EXISTS运算符将查询转换为等效的查询,而不使用ANY运算符。 例如,以下语句返回列表价格大于类别编号:1中产品的任何标价的所有产品:

SELECT

product_name,

list_price

FROM

products

WHERE

list_price > ANY(

SELECT

list_price

FROM

products

WHERE

category_id = 1

)

ORDER BY

product_name;

由于查询与ANY运算符一起使用子查询,因此Oracle执行了单个转换,如下所示:

SELECT

product_name,

list_price

FROM

products p1

WHERE

EXISTS(

SELECT

list_price

FROM

products p2

WHERE

category_id = 1

AND p1.list_price > p2.list_price

)

ORDER BY

product_name;

请注意,如果子查询不返回任何行,则以下条件的计算结果为false:

operator ANY (subquery)

因此,整个查询不返回行:

SELECT

*

FROM

table_name

WHERE

col operator ANY(subquery);

在Oracle中,SOME和ANY的行为完全相同,因此它们完全可以互换。

Oracle ANY运算符的例子

如果子查询返回行或列表具有值,则以下语句适用于ANY运算符:

1. col = ANY ( list )

如果col在列表中匹配一个或多个值,则表达式的计算结果为true,例如:

SELECT

product_name,

list_price

FROM

products

WHERE

list_price = ANY(

2200,

2259.99,

2269.99

)

AND category_id = 1;

执行上面示例代码,得到以下结果 -

2. col != ANY(list)

如果列与列表中的一个或多个值不匹配,则表达式的计算结果为true。参考以下查询语句 -

SELECT

product_name,

list_price

FROM

products

WHERE

list_price != ANY(

2200,

2259.99,

2269.99

)

AND category_id = 1

ORDER BY

list_price DESC;

执行上面示例代码,得到以下结果 -

3. col > ANY (list)

如果col大于列表中的最小值,则表达式的计算结果为true。

SELECT

product_name,

list_price

FROM

products

WHERE

list_price > ANY(

2200,

2259.99,

2269.99

)

AND category_id = 1

ORDER BY

list_price DESC;

执行上面示例代码,得到以下结果 -

4. col >= ANY (list)

如果col大于或等于列表中的最小值,则表达式的计算结果为true。参考以下查询语句 -

SELECT

product_name,

list_price

FROM

products

WHERE

list_price >= ANY(

2200,

2259.99,

2269.99

)

AND category_id = 1

ORDER BY

list_price DESC;

执行上面示例代码,得到以下结果 -

5. col < ANY (list)

如果col小于列表中的最大值,则表达式的计算结果为true。

SELECT

product_name,

list_price

FROM

products

WHERE

list_price < ANY(

2200,

2259.99,

2269.99

)

AND category_id = 1

ORDER BY

list_price DESC;

执行上面示例代码,得到以下结果 -

6. col <= ANY (list)

如果col小于或等于列表中的最大值,则表达式的计算结果为true。

SELECT

product_name,

list_price

FROM

products

WHERE

list_price <= ANY(

2200,

2259.99,

2269.99

)

AND category_id = 1

ORDER BY

list_price DESC;

执行上面示例代码,得到以下结果 -

在本教程中,您已学习如何使用Oracle ANY运算符将值与列表或子查询进行比较。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

some any oracle,Oracle Any/Some运算符相关推荐

  1. oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询...

    oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询博客分类: oracle OracleSQL 比较运算符 >,<:大于,小于 >=. ...

  2. 手动升级oracle,ORACLE 10.2.0.1手动升级到10.2.0.4

    ORACLE 10.2.0.1手动升级到10.2.0.4 1.解压zip包以及查看目录权限 p6810189_10204_Linux-x86-64.zip oracle@single-10g:/u01 ...

  3. linux双机热备 oracle,oracle for linux双机热备实战

    10.0.0.11是我主服务器的ip,10.0.0.111是我从服务器的ip, testdbase是数据库的sid号, 操作系统的版本是RedHat Linux 8.0 数据库版本是Oracle 9. ...

  4. 负载均衡设备oracle,Oracle RAC 服务器端联接负载均衡(Load Balance)

    Oracle RAC 服务器端连接负载均衡(Load Balance) Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去.当数据库处于 ...

  5. oracle里有limit怎么用,[ORACLE]ORACLE 实现mysql中的limit 功能

    [ORACLE]ORACLE 实现mysql中的limit 功能 项目从mysql迁移到ORACLE中遇到移植问题,mysql中支持limit 而ORACLE say no . 解决方法 利用ORAC ...

  6. oracle sql-1,Oracle – Oracle SQL(1)

    Oracle – Oracle SQL(1) 1. 简介 (1) SQL : Structured Query Language,结构化查询语言,专门用于数据存取.数据更新及数据库管理等操作. (2) ...

  7. ocr oracle,Oracle RAC备份和恢复OCR-Oracle

    Oracle RAC备份和恢复OCR Oracle RAC 备份和恢复OCR voting disks备份恢复参考: /database/201303/195593.html 1.OCR有两种备份方式 ...

  8. bat循环导oracle,Oracle备份恢复与批处理文件实操

    以下的文章主要是对简单的Oracle备份恢复批处理文件的实际操作步骤的介绍,以及对简单的Oracle备份恢复批处理文件的两个建议的详细介绍,以下就是文章的相关内容的介绍,望你会有所了解. 简单的Ora ...

  9. aioserve oracle,oracle进程关不掉的问题??新手问题

    刚刚的问题是因为oracle进程占用太多的内存导致宕机的原因.进入sqlplus用shutdown immediate关闭服务后,用topas查看发现oracle进程依然存在....奇怪...如图:N ...

  10. oracle:oracle学习笔记(三)

    oracle:oracle基础知识(三):存储过程.函数笔记,赵强老师 对于视频中涉及java部分的章节省略: 文章目录 存储过程.存储函数 存储过程基本语法 存储函数 带in 和out 参数 存储过 ...

最新文章

  1. Flask一:安装初始,return方式,Request,Jinja2,session
  2. 再议《反驳 吕震宇的“小议数据库主键选取策略(原创)” 》
  3. 减少该死的 if else 嵌套
  4. 俄罗斯机器人雄鹿_在雄鹿无球可打,在火箭重获新生!哈登,你又让一人打出身价...
  5. 【C#学习笔记】函数调用
  6. python keyboard库_python利用 keyboard 库记录键盘事件
  7. WebService的应用之winform身份验证
  8. 微信全文搜索优化之路
  9. POJ 1365 Prime Land
  10. 【毕业设计】基于STM32的公交站牌系统 - 物联网 嵌入式 单片机
  11. Bada学习-bada测试服务器
  12. layui富文本编辑器,使用第三方插件Kz.layedit上传文件时自定义文件域字段名和请求参数
  13. 如何确定系统上的CPU插槽数量
  14. C语言查询ask码的函数,ask码(字符转成ascii码)
  15. MPLS 配置远端LDP会话实验 详解
  16. CTFshow—MISC图片篇(基础操作)
  17. matlab 三围温度,matlab 两个二维温度场平面如何通过插值立体重建三维温度场
  18. ESP32 WIFI MESH学习笔记7-物联网与控制(ESP32部分)
  19. Pandas读取excel文件(pandas.read_excel)
  20. Salt Pepper—The Art of Illustrating Texture

热门文章

  1. 技术干货 | SDN controller高可用之路
  2. 浏览器控件JxBrowser V6.14大版本发布 | 注入CSS
  3. Windows应用程序组成及编程步骤
  4. oracle从子表取出前几行数据:
  5. python多线程和多进程
  6. springcloud 心得记录
  7. Android Service中的android:process=:remote
  8. mysql:赋予用户权限、查看及修改端口号
  9. Linux 用户的 3 个命令行小技巧
  10. 学习笔记:JS + 简单的PHP实现用户注册及登录