oracle函数 的 Oracle Any/Some

在本教程中,您将学习如何使用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;

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

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;

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

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运算符将值与列表或子查询进行比较。

oracle any 语法,Oracle Any/Some相关推荐

  1. Oracle+DML语法,Oracle DML

    DML是"数据操纵语言"( Data Manipulation Language )的简写. 如果说SELECT语句对数据进行的是读操作,那么DML语句对数据进行的是写操作. DM ...

  2. oracle any 语法,Oracle:apos;= ANY()apos;与apos;IN()apos; Dovov编程网

    IN- Equal to any member in the list ANY- Compare value to **each** value returned by the subquery AL ...

  3. Oracle存储过程语法

    原文链接:http://www.jb51.net/article/31805.htm Oracle存储过程基本语法 存储过程  1 CREATE OR REPLACE PROCEDURE 存储过程名  ...

  4. oracle经典增删该查,oracle基本语法(增删改查

    <oracle基本语法(增删改查>由会员分享,可在线阅读,更多相关<oracle基本语法(增删改查(7页珍藏版)>请在人人文库网上搜索. 1.安装 PL/SQL Develop ...

  5. oracle中触发器的语法,Oracle 触发器语法及实例

    Oracle 触发器语法及实例 Oracle触发器语法(一) 一Oracle触发器语法 触发器是特定事件出现的时候,自动执行的代码块.类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用 ...

  6. Oracle基本语法查询语句

    Oracle基本查询语法 本文含含: 基础/基本查询/排序/函数(单/多) 一.前言知识 1.oracle如何操作硬盘上的文件,最终都是以进程方式操作硬盘上的文件,最基本进程:读 写 ,还有其他客户端 ...

  7. Oracle存储过程语法学习

    Oracle存储过程: 1.1 第一个存储过程 --创建存储过程 create or replace procedure proc1( p_para1 varchar2, p_para2 out va ...

  8. mysql 、oracle存储过程语法区别

    mysql .oracle存储过程语法区别 1.  条件语句:mysql使用elseif关键字,oracle是elsif关键字: oracle: if表达式 then 表达式: elsif 表达式: ...

  9. sql和mysql和oracle的区别吗_sql和oracle的语法上有什么区别

    sql和oracle语法上的区别有:1.数据类型不同:2.获得当前系统时间的函数不同:3.创建用户的方式不同:4.连接变量和字符串的方式不一样:5.条件语句"if-else-"的语 ...

最新文章

  1. “996 是福利,007 才是常态”?!千万程序员怒怼每日优鲜!
  2. Spark on k8s提交测试任务失败报错解决办法:User “system:serviceaccount:default:default“ cannot get resource “pods
  3. 4月数据库流行度排行出炉:MySQL 成事实王者
  4. nginx入门(4):FastCGI代理
  5. kratos的返回值问题与错误返回问题
  6. Construct Maximum Binary Tree
  7. 从开源爱好者到 Apache 董事,他花了 11 年
  8. C++中Set的使用
  9. 芯故事 心感动:英特尔企业文化的力量
  10. dns遭到劫持_关于网站pr劫持的问题,PR劫持是如何实现的呢?
  11. iPhone苹果手机iOS14更新升级到iOS15需要多久?
  12. STM32开发,使用IAR软件建立工程
  13. 图像分割论文 “RANet : Region Attention Network for Semantic Segmentation”
  14. 去商场淘打折商品时,计算打折以后的价钱是件颇费脑子的事情。例如原价 ¥988,标明打 7 折,则折扣价应该是 ¥988 x 70% = ¥691.60。本题就请你写个程序替客户计算折扣价。
  15. 基础知识--pcre
  16. 史上最全4S店维修潜规则 看完绝不被坑
  17. win10管理员已阻止你运行此应用解决方法
  18. PyCharm谷歌翻译插件Translation提示:更新 TKK 失败,请检查网络连接
  19. alpha因子常见问题_多因子模型是否真的可以带来阿尔法(alpha)?
  20. FC6安装配置详细介绍

热门文章

  1. openoffice使用总结001---版本匹配问题unknown document format for file: E:\apache-tomcat-8.5.23\webapps\ZcnsDms\
  2. C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误
  3. VC助手使用问题————all instance of the license* are in use .VA will be disabled
  4. 双模sa_七句话讲清NSA单模与SA+NSA双模手机的真实区别
  5. vs code c语言json文件配置,解析VScode在Windows环境下c_cpp_properties.json文件配置问题(推荐)...
  6. 使用php 发送邮件,使用PHPMailer实现邮件发送代码分享
  7. ios kvo 要引入_iOS KVO 实现原理 和 自己实现KVO
  8. SSH三大框架的概述
  9. Android监听作用,Android开发之CheckBox的简单使用与监听功能示例
  10. c#arcgis engine开发_湖南web开发学习网站要多久