Oracle中any和all的区别用法

  对于any,all的用法,书中说的比较绕口,难以理解,如果通过举例就会比较清晰.

  any的例子:

select * from t_hq_ryxx where gongz > any (select pingjgz from t_hq_bm);

输出的结果是所有大于字段‘pingjgz‘中最小数的值,简单来说就是输出的数全部大于‘pingjgz‘字段中的最小值;

select * from t_hq_ryxx where gongz < all (select pingjgz from t_hq_bm);

输出的结果是所有小于字段‘pingjgz‘中最大数的值,简单来说就是输出的数全部小于‘pingjgz‘字段中的最大值;

即:大于最小值,小于最大值

  all的例子:

select * from t_hq_ryxx where gongz > all (select pingjgz from t_hq_bm);

输出的结果是所有大于字段‘pingjgz‘中最大数的值,简单来说就是输出的数全部大于‘pingjgz‘字段中的最大值;

select * from t_hq_ryxx where gongz < all (select pingjgz from t_hq_bm);

输出的结果是所有小于字段‘pingjgz‘中最小数的值,简单来说就是输出的数全部小于‘pingjgz‘字段中的最小值;

即:小于最小值,大于最大值

如果还是不清楚,把下面这句看懂也就够了:

  any 就是匹配集合中的任意一个就满足条件了;而 all 要跟所有的都比较,所有都满足以后才为真。

 
时间: 2024-10-05 04:45:02

Oracle中any和all的区别用法的相关文章

oracle中的exists 和not exists 用法 in与exists语句的效率问题

博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源(  in与exists语句的效率问题):http://www.cnblogs.com/iceword/archive/2011/02/15/1955337.html (一) exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1    A1 2

oracle中的exists 和not exists 用法详解

oracle中的exists 和not exists 用法详解 有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高. 2) select * from T1 where T1.a in (select T2.a from T2) ; T1数据量非常大而T2数据量小时,T1>

ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

Oracle 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内是连续且唯一的). 举例: SQL> DESC T1; Name                                           Null?    Type----------------------

oracle中函数和存储过程的区别和联系【转载竹沥半夏】

oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as

oracle 中 Start with...connect by 的用法(递归查询)

阿里电面问到了相关的知识,在网上找到这方面的文章. 这几个关键字是查询递归数据的,形成一个树状结构.目前只有oracle支持,其他数据都要结合存储过程实现 语法: select * from some_table [where 条件1] connect by [条件2] start with [条件3]; 其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果,[where 条件1]可以不需要.  [where 条件1].[条件2].[条件3]各自作用的范围都不

oracle中函数和存储过程的区别和联系

oracle中函数和存储过程的区别和联系 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as 变量名 类型:

oracle中union和union all区别与性能分析

[ 概要 ] 经常写sql的同学可能会用到union和union all这两个关键词, 可能你知道使用它们可以将两个查询的结果集进行合并, 那么二者有什么区别呢? 下面我们就简单的分析下. [ 比较 ] union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序; union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复; 下面我们举一个简单的例子来证明上面的结论: 1. 准备数据: drop table

Oracle 中UNDO与REDO的区别详解

    学习设计模式已经有段时间了,初接触设计模式,尽管例子简单.生动,但还是感觉很是抽象.今天又学习了设计模式中的装饰模式,也就是装饰模式让自己对模式略有所懂,装饰模式最大的特点就是把所有需要的功能都按正确的顺序串联起来进行控制.这里需要强调的是"顺序",也就是说这种装饰是建立在一定的顺序之上的,而且这种顺序是由人为控制的:不同于建造者模式,它的顺序是固定不变的. **概念     动态地给一个对象添加一些额外的职责,就增加的功能来说,装饰模式比生成子类更为灵活. **结构图    

Oracle中function和procedure的区别

Oracle中function和procedure的区别: 1). 可以理解函数是存储过程的一种 2). 函数可以没有参数,但是一定需要一个返回值,存储过程可以没有参数,不需要返回值 3). 函数return返回值没有返回参数模式,存储过程通过out参数返回值, 如果需要返回多个参数则建议使用存储过程 4). 在sql数据操纵语句中只能调用函数而不能调用存储过程 原文地址:https://www.cnblogs.com/Xbingbing/p/8870575.html