zoukankan      html  css  js  c++  java
  • 在oracle的子查询中使用some,any和all

    some,anyall对子查询中返回的多行结果进行处理。下面我们来简单介一下这几个关键词的含义。

    • Some在此表示满足其中一个的意义,是用or串起来的比较从句。
    • Any也表示满足其中一个的意义,也是用or串起来的比较从句,区别是any一般用在非“=”的比较关系中,这也很好理解,英文中的否定句中使用any肯定句中使用sone,这一点是一样的。
    • All则表示满足其其中所有的查询结果的含义,使用and串起来的比较从句。

    下面是一些例子
    找出员工中,只要比部门号为10的员工中的任何一个员工的工资高的员工的姓名个工资。也就是说只要比部门号为10的员工中的那个工资最少的员工的工资高就满足条件。

    select ename,sal
    From emp
    Where sal > any(select sal from emp where deptno = 10);

    这里推荐用any,如果你非要用some也是没有任何问题的,结果是一样的,只是一般来讲some用在“=”的比较从句中。
    select ename,sal
    From emp
    Where sal > some(select sal from emp where deptno = 10);

    上面的用法完全OK的。
    select ename,sal
    From emp
    Where sal = some(select sal from emp where deptno = 30) and deptno not in (select deptno from emp where deptno = 30);

    上面才是some的正常用法。其含义是找到和30部门员工的任何一个人工资相同的那些员工。虽然没有找到。
    最后一个关键字all的用法也很简单就是要与子查询的每一结果都要匹配。

    select ename,sal
    From emp
    Where sal > all(select sal from emp where deptno = 20);

    上面的SQL语句的意义与前面的就完全不一样了,其意义是找到比部门号为20的员工的所有员工的工资都要高的员工,也就是比那个工资最高的员工的还要高的员工
    总的来说someany用法意义是一样的,仅在词法上有不同,都表示对子查询结果集中的比较关系,而all则是对子查询结果集总每一个结果的关系

    魔兽就是毒瘤,大家千万不要玩。
  • 相关阅读:
    mysql联合主键自增、主键最大长度小记
    针对list集合进行分页展示
    初识javascript变量和基本数据类型
    12.19如何定义正则表达式
    人民币符号在html的显示方法
    windows下的NodeJS安装
    css 实现未知图片垂直居中
    IE678下placeholder效果,支持文本框和密码框
    jvm004 解析与分派
    jvm003 类加载的过程
  • 原文地址:https://www.cnblogs.com/tracy/p/1712562.html
Copyright © 2011-2022 走看看