oracle函数 的 Oracle All

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

Oracle ALL操作符简介

Oracle ALL操作符用于将值与返回的值列表或结果集进行比较。

以下显示了与列表或子查询一起使用的ALL运算符的语法:

operator ALL ( v1, v2, v3)

operator ALL ( subquery)

在这个语法中,

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

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

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

SELECT

*

FROM

table_name

WHERE

c > ALL (

v1,

v2,

v3

);

-- 以上语句转换为 ALL 运算符后

SELECT

*

FROM

table_name

WHERE

c > v1

AND c > v2

AND c > v3;

如果使用ALL运算符将值与子查询返回的结果集进行比较,则Oracle执行两步转换,如下所示:

SELECT product_name,

list_price

FROM products

WHERE list_price > ALL

( SELECT list_price

FROM products

WHERE category_id = 1 )

ORDER BY product_name;

-- 1st step: transformation that uses ANY

SELECT product_name,

list_price

FROM products p1

WHERE NOT( p1.list_price <= ANY

(SELECT list_price

FROM products p2

WHERE category_id = 1 ))

ORDER BY product_name;

-- 2nd step: transformation that eliminates ANY

SELECT product_name,

list_price

FROM products p1

WHERE NOT EXISTS

(SELECT p2.list_price

FROM products p2

WHERE p2.category_id = 1

AND p2.list_price >= p1.list_price )

ORDER BY product_name;

如果子查询不返回行,则以下条件的计算结果为true:

operator ALL (subquery)

这意味着在子句中使用上述条件的查询将返回所有行,以防子查询返回任何行。

SELECT

*

FROM

table_name

WHERE

col operator ALL(subquery);

Oracle ALL运算符示例

以下示例查找每个类别中产品的平均标价:

SELECT

ROUND( AVG( list_price ),2 ) avg_list_price

FROM

products

GROUP BY

category_id

ORDER BY

avg_list_price DESC;

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

1. col> ALL(list)

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

例如,以下查询查找标价大于平均价格列表最大价格的产品:

SELECT

product_name,

list_price

FROM

products

WHERE

list_price > ALL(

SELECT

AVG( list_price )

FROM

products

GROUP BY

category_id

)

ORDER BY

list_price ASC;

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

2. col < ALL(list)

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

SELECT

product_name,

list_price

FROM

products

WHERE

list_price < ALL(

SELECT

AVG( list_price )

FROM

products

GROUP BY

category_id

)

ORDER BY

list_price DESC;

例如,以下查询将查找标价低于平均价格列表中最小价格的产品:

3. col> = ALL(list)

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

以下语句返回列表价格大于或等于2200的CPU产品:

SELECT

product_name,

list_price

FROM

products

WHERE

list_price >= ALL(

1000,

1500,

2200

)

AND category_id = 1

ORDER BY

list_price DESC;

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

4. col <= ALL(list)

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

以下语句返回标价小于或等于列表中最小值的977.99的CPU产品。

SELECT

product_name,

list_price

FROM

products

WHERE

list_price <= ALL(

977.99,

1000,

2200

)

AND category_id = 1

ORDER BY

list_price DESC;

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

5. col = ALL ( list)

如果col匹配列表中的所有值,则表达式的计算结果为true。

6. col!= ALL(list)

如果col不匹配列表中的任何值,则表达式的计算结果为true。

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

oracle中col 的用法,Oracle All相关推荐

  1. oracle中col 的用法,Oracle中的SUM用法讲解,

    Oracle中的SUM用法讲解, Oracle中的SUM条件查询 1.按照区域编码分组查询区域编码.IPTV_NBR不为空的数量.ACC_NBR不为空的数量.所有用户数量 SELECT AREA_CO ...

  2. oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?

    oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...

  3. oracle中的and用法,Oracle bitand( )函数简介

    Oracle bitand( )函数在Oracle数据库中是很常见的,下面就为您详细介绍Oracle bitand( )函数的用法,如果您感兴趣的话,不妨一看. Oracle bitand( )函数: ...

  4. oracle中pivot的用法,oracle中pivot的实现原理和用法

    考试大Oracle站整理: 1. 11g之前的行列转换面试 领袖又说了:"温故而知新".那就让咱们先看看11g之前是怎么实现地.行列转换一直看成甄别老手和新手的试金石,面试的时候面 ...

  5. oracle中同义词的用法,Oracle中使用同义词介绍

    一.背景 有两个sid:Asid,Bsid,在Asid下有两个用户Auser1,Auser2,在Bsid下有一个用户Buser1.其中Auser2和Buser1建立了dblink.现希望通过登录Bus ...

  6. oracle中的split用法,oracle中split的使用

    1.创建自己的类型 VARCHAR2ARRAY CREATE OR REPLACE TYPE "VARCHAR2ARRAY" as table of varchar2(300); ...

  7. oracle中least的用法,oracle中的greatest 函数和 least函数

    1           语法 GREATEST(expr_1, expr_2, ...expr_n) 2           说明 GREATEST(expr_1, expr_2, ...expr_n ...

  8. oracle中类似indexof用法_instr函数

    oracle中类似indexof用法_instr函数 [sql] 在oracle中没有indexof()函数 但是提供了一个 instr() 方法 具体用法: select instr('保定市南市区 ...

  9. Oracle中group by用法

    Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总 ...

最新文章

  1. unity, Shader.Find的一个坑
  2. python图片-Python中的十大图像处理工具
  3. 波分复用和频分复用计算机,11. 波分复用:80路以上频分复用,从2.5到20Gb每秒...
  4. Capybara 2.14.1 发布,Web 应用验收测试框架
  5. mysql 多表查询 join on_MySQL多表查询Left Join,Right Join学习笔记
  6. html静态网页模板_aspnetcore 实现简单的伪静态化
  7. 图像处理 之 同态滤波
  8. 用java编写一个故事的程序_使用Java怎么编写一个递归程序
  9. python入门经典100例-【python】编程语言入门经典100例--25
  10. jQuery实现点击行(tr)选中某列中CheckBox
  11. 如何配置VS使得可以通过域名或IP访问
  12. matlab gui界面的优点,关于Matlab GUI界面设计的一些了解
  13. 华为nova7se乐活版和华为畅享20se 哪个好
  14. Android应用开发实战-保活组件
  15. Java使用MongoTemplate操作MangoDB,实现根据时间等条件组合查询,解决ISODate的问题
  16. 往数据库里添加date(时间)类型的数据
  17. 男人应该多吃的10种健康食物
  18. N1盒子Armbian折腾记
  19. php 字符串m5加密解密_PHP加密解密字符串汇总
  20. UG和Solidworks的比较

热门文章

  1. 文巾解题 6. Z 字形变换
  2. tableau可视化函数使用案例(六十七)-Tableau饼图及其变种(环形图、南丁格尔玫瑰图、旭日图)
  3. tableau必知必会之VMware 搭建 Tableau Server for Linux 单机环境
  4. 数据中台实战(四):商品分析(产品设计篇)
  5. MATLAB编程经典程序 素数的判断,求0~100素数之和
  6. 拍拍信微服务网关实践分享
  7. 1号店11.11:从应用架构落地点谈高可用高并发高性能--转载
  8. HDFS 原理、架构与特性介绍--转载
  9. A XSS filter for Java EE web apps--转载
  10. 【采用】解读消金业务风控模型的6个层级