oracle之 any、some、all 解析

因为很少用到, 所以几乎忘记了这几个函数, 不过它们还是很有用的使用它们可以大大简化一些SQL文的语法, 至于效率问题,

如CCW所说它们和EXISTS, IN 之类没有什么差别, 而且要具体问题具体分析

其中ANY和SOME在意思上是相同的,

可以相互替代.

举几个例子来说明ALL和ANY的用法

1. SELECT * FROM TABLEA WHERE FLD > ALL(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD > (SELECT MAX(FLD) FROM TABLEA)

2. SELECT * FROM TABLEA WHERE FLD > ANY(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD > (SELECT MIN(FLD) FROM TABLEA)

3. SELECT * FROM TABLEA WHERE FLD = ANY(SELECT FLD FROM TABLEA)

这相当于

SELECT * FROM TABLEA WHERE FLD IN (SELECT FLD FROM TABLEA)

最后, 关于HAVING它是用于合计计算的运算符, 它和WHERE有着不同的含义

当使用GROUP时HAVING是对各组中的记录进行比较的意思,

换句话说它是选择一组数据的条件

而WHERE则和分组无关, 它是选择一行数据的条件

比如,

SELECT NAME, AVG(PRICE) FROM STORE GROUP BY NAME HAVING AVG(PRICE) > 10

这里的HAVING是WHERE无法替代的

至于效率, WHERE是在生成结果集之前就完成的处理,

而HAVING则要等到结果集做成后在循环执行的处理, 自然效率要低一些, 因此在只需要对行进行操作的时候, 不要使用HAVING。

Oracle之 any 、some、all解析的更多相关文章

  1. Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值

    感谢原作者:破剑冰-Oracle中Clob类型处理解析 上一篇分析:ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 最近为Clob字段在插入数据时发现当字符的字节数(一个半角字符一 ...

  2. Oracle AWR报告指标全解析-11011552

    1-5 Top 5 Timed EventsWaits : 该等待事件发生的次数, 对于DB CPU此项不可用Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程所消 ...

  3. Oracle使用Sql把XML解析成表(Table)的方法

    SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version="1.0&qu ...

  4. oracle dblink 查询 tns:无法解析指定的连接标识符

    问题情景是这样的:我在数据库服务器(windows server 2008r2 ,64bit)oracle(11gr2,64bit)中通过dblink连接到另外一台服务器(hp-ux)的oracle( ...

  5. 【Oracle学习笔记-3】关于Oracle 10g中各种服务解析

    [原创]关于oracle 10g中各种服务解析 (2014/10/16 8:39:40) 时间:2014-10-16 8-58-30     作者:ssslinppp 1. 当首次安装oracle 1 ...

  6. Oracle中的rownum用法解析

    注意:rownum从1开始:  1.rownum按照记录插入时的顺序给记录排序,所以有order by的子句时一定要注意啊!  2.使用时rownum,order by字段是否为主键有什么影响?  3 ...

  7. Oracle数据库ORA-12154: TNS: 无法解析指定的连接标识符详解

    ORA-12154: TNS: 无法解析指定的连接标识符(转自http://www.cnblogs.com/psforever/p/3929064.html) 相信使用过Oracle数据库的人一定碰到 ...

  8. Oracle常用性能监控语句解析

    转:http://www.cnblogs.com/preftest/archive/2010/11/14/1876856.html 1.监控等待事件select event,sum(decode(wa ...

  9. oracle 基础知识(九)----SQL解析

    一,解析过程 二,硬解析,软解析,软软解析 01,硬解析 将SQL语句通过监听器发送到Oracle时, 会触发一个Server process生成,来对该客户进程服务.Server process得到 ...

  10. ORACLE 11GR2 RAC的网络规划解析

    在ORACLE 11gR2中,安装RAC发生了显著变化.在10g以及11gR1的时代,安装RAC的步骤是先安装CRS,再安装DB,而到了11gR2的时代,crs与asm被集成在一起,合称为GRID,必 ...

随机推荐

  1. Unity3D安装破解教程(以Unity5.3.4为例)(转)

      Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎.目 ...

  2. HTML特殊符号、常用字符实体

    HTML特殊符号对照表.常用的字符实体 最常用的字符实体 显示结果 描述 实体名称 实体编号   空格     <</td> 小于号 < < > 大于号 > ...

  3. 201521123064 《Java程序设计》第1周学习总结

    1. 本章学习总结 1.了解Java与C/C++的区别,Java语言所写程序较为繁琐,C/C++较为简洁. 2.学会使用cmd进行程序的编译及运行. 3.学会利用JDK辅助Java编程. 4.使用ec ...

  4. 201521123040《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  5. 学号:201521123116 《java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...

  6. Linux SDK之uClinux、Broadcom、Atheros、Realtek、Ralink、Marvell、Intel

    接触的Linux SDK越来越多,整理整理,分享分享,不求系统全面,对您有帮助便足矣 文中大部分是与AP/Router SoC解决方案(单芯片WIFI 路由器解决方案)相关的Linux SDK SDK ...

  7. 201521123045 《JAVA程序设计》第1周学习总结

    1. 本周学习总结 学习了入门的java知识,知道了jdk.eclipse等基础软件,了解了如何编译最基础的java程序.知道了java的基本原理以及java的几种数据类型.掌握使用简单编译器编写ja ...

  8. 【DDD】业务建模实践 —— 删除帖子

    本文是基于上一篇‘业务建模战术’的实践,主要讲解‘删除帖子’场景的业务建模,包括:业务建模.业务模型.示例代码:示例代码会使用java编写,文末附有github地址.相比于<领域驱动设计> ...

  9. logback:logback和slf4j中的:appender、logger、encoder、layout

    (1)appender 1.appender标签是logback配置文件中重要的组件之一.在logback配置文件中使用appender标签进行定义.可 以包含0个或多个appender标签. 2.a ...

  10. JPA 注解的CascadeType属性

    cascade表示级联操作,在表之间的关系映射时用到 CascadeType.MERGE级联更新:若items属性修改了那么order对象保存时同时修改items里的对象.对应EntityManage ...