Oracle 取两个表中数据的交集并集差异集合
2015-01-22 08:57
429 查看
Oracle 取两个表中数据的交集
关键字: Oracle 取两个表中数据的交集 INTERSECTOracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据
例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集了
CODE | NAME | GENDER |
001 | Tom | M |
002 | Jerry | M |
003 | Ana | F |
CODE | SALARY |
001 | 2800 |
002 | 2500 |
003 | 3000 |
INTERSECT 操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数量和数据类型必须完全相同。
SELECT CODE FROM EMPLOYEE WHERE GENDER = 'M'
INTERSECT
SELECT CODE FROM SALARY WHERE SALARY > 2500
第一条SQL的结果为
CODE
----------
001
002
第二条SQL的结果为
CODE
----------
001
003
INTERSECT的结果
CODE
----------
001
方法2:利用关系SQL
SELECT A.CODE FROM EMPLOYEE A, SALARY B
WHERE A.CODE = B.CODE AND A.GENDER = 'M' AND B.SALARY > 2500
结果为
CODE
----------
001
以上两种方法是本人比较常用的方法,尤其第二种,充分体现关系数据的精髓所在。但如果两个表结构比较复杂,而且关系条件也比较难实现的话,第一种显然能够简单地得到需要的结果,也不失为一种好方法。
差异集合: minus
并集,并排除重复记录:union
并集,并包含重复记录:union all
转自:http://blog.sina.com.cn/s/blog_5656bf3e010007cz.html
相关文章推荐
- Oracle 取两个表中数据的交集并集差异集合
- Oracle 取两个表中数据的交集并集差异集合
- ORACLE 数据查询集合即:查询结果的集合操作 并集 交集 差集
- Oracle中对两个数据表交集的查询(intersect和in)
- Oracle中对两个数据表交集的查询
- 任意长度的两个整数集合求并集与交集
- grep和map计算两个集合交集、并集、补集
- java集合操作-----求两个集合的交集和并集
- 求两个集合的交集,并集,差集
- 用C++标准库算法求两个集合的交集、并集、差集
- 两个DataTable之间的差集、交集、并集集合(Except、Intersect、Union)
- 集合:求A、B两个集合的交集、并集和补集的代码(C语言)
- Oracle中对两个数据表交集的查询
- Oracle-27-集合操作(交集、并集、差集)&子查询之单行子查询
- [笔试]两个整数集合求交集并集
- AutoCAD.Net/C#.Net QQ群:193522571 LinQ 两个集合求交集、并集
- 获取两个DataTable之间的差集、交集、并集集合(Except、Intersect、Union)
- java集合操作-----求两个集合的交集和并集
- Linq 数据操作,两个数组求差、交集、并集
- java求两个集合的交集和并集