引用:
http://blog.sina.com.cn/s/blog_4fd11d0a01009zeh.html###
用some,any和all对子查询中返回的多行结果进行处理。下面我们来简单介一下这几个关键词的含义。
* 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的员工的所有员工的工资都要高的员工,也就是比那个工资最高的员工的还要高的员工
总的来说some和any用法意义是一样的,仅在词法上有不同,都表示对子查询结果集中“或”的比较关系,而all则是对子查询结果集总每一个结果“与” 的关系
分享到:
相关推荐
oracle中any和all区别 详细讲解ORACLE技巧
oracle笔记子查询,有子查询相关的知识点笔记和具体的案例代码!
ORACLE子查询
Oracle 子查询
oracle表连接和子查询实例 所有的实例查询都包含在里面,不会担心笔试oracle子查询。
oracle中的子查询使用场合,种类,使用方法,错误排除
Oracle经典教程3——子查询和常用函数
复杂相关子查询 动画版
oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...
oracle子查询学习教案.pptx
oracle笔记高级子查询,oracle中的高级子查询有点难度,不太好理解,有具体的案例代码!
通过本章学习,您将可以: 书写多列子查询 ...在 FROM 子句中使用子查询 在SQL中使用单列子查询 相关子查询 书写相关子查询 使用子查询更新和删除数据 使用 EXISTS 和 NOT EXISTS 操作符 使用 WITH 子句
Oracle性能查询包使用
oracle select group 子查询 表连接
oracle代码oracle代码 oracle代码oracle代码
oracle 迅速查询和更新大数据,oracle 迅速查询和更新大数据oracle 迅速查询和更新大数据
oracle子查询PPT课件.ppt
简单的介绍oracle子查询语句的使用,
oracle子查询PPT课件.pptx