2007-04-25
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 |
方法1:利用操作符INTERSECT
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
以上两种方法是本人比较常用的方法,尤其第二种,充分体现关系数据的精髓所在。但如果两个表结构比较复杂,而且关系条件也比较难实现的话,第一种显然能够简单地得到需要的结果,也不失为一种好方法。
发表评论
- 浏览: 9151 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
最新评论
-
JSP学习笔记-JSP002 中文 ...
是这样,JSP文件通过JVM编译成servlet,是服务器运行这个servlet ...
-- by Ben.Sin -
JSP学习笔记-JSP002 中文 ...
jsp怎么最终会生成html代码的 。。。 LZ对这个解析过程还不是很了解嘛
-- by 卡拉阿风 -
Java面试
...
-- by Ben.Sin -
Java面试
和咖啡没关系啊,随便聊聊~
-- by zjlovezj -
Oracle 时间格式
en ,支持
-- by Adams1986






评论排行榜