Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据

例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集了

employee

CODE

NAME

GENDER

001

Tom

M

002

Jerry

M

003

Ana

F

salary

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

以上两种方法是本人比较常用的方法,尤其第二种,充分体现关系数据的精髓所在。但如果两个表结构比较复杂,而且关系条件也比较难实现的话,第一种显然能够简单地得到需要的结果,也不失为一种好方法。

差异集合: minus

并集,并排除重复记录:union

并集,并包含重复记录:union all

转自:http://blog.sina.com.cn/s/blog_5656bf3e010007cz.html

oracle关联查询取交集,Oracle 取两个表中数据的交集并集差异集合相关推荐

  1. oracle表交集并集,Oracle 取两个表中数据的交集并集差异集合

    Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集 ...

  2. oracle 多个表取并集,Oracle?取两个表中数据的交集并集差异集合

    Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集 ...

  3. excel比较两个表中数据 提取相同列 合并到同一张表中

    比较两个表中数据 提取相同列 合并到同一张表中 =VLOOKUP(A2,Sheet3!A:B,1,0) A2:表示 被查找的值 Sheet3!:表示哪张表 A:B:表示查找区域 1:表示提取哪列的值 ...

  4. oracle关联查询月价格,Oracle EBS 常用查询 - 价格表查询

    --根据价格表名称查询价格表头信息 Select Qp_List_Headers_Tl.Name As Price_List_Name,Qp_List_Headers_Tl.Description A ...

  5. oracle数据库纵向转横向,复杂SQL语句实现表中数据横向变纵向问题求解

    想要实现如下结果说明如下: 以id1,id2过滤前提,根据kind把数据进行处理, 当kind=1时,name2,age2置空 当kind=2时,name1,age1置空 说明:数据的id1,id2相 ...

  6. SQL查询表结构相同的两张表中数据的差异

    逻辑相对复杂,但是速度最快: select * from B where (select count(1) from A where A.ID = B.ID) = 0

  7. oracle关联字段和序列,oracle(9) 序列和约束

    序列 SEQUENCE 也是数据库对象之一,作用:根据指定的规则生成一些列数字. 序列通常是为某张表的主键提供值使用. 主键:通常每张表都会有主键字段,该字段的值要求非空且唯一, 使用该字段来确定表中 ...

  8. oracle的查询连续半个月或者一周的数据

    oracle的查询连续半个月或者一周的数据 使用 between and 来查询,如下: 看到当前日期是1-29 再看下查询表的所有数据,可以看到21号到29号有一段连续的数据 然后我们查询今天起倒推 ...

  9. oracle两张表 比较好,比较Oracle两张表的数据是否一样

    比较Oracle两张表的数据是否一样 爱搞机 2008-10-21 11:00 在某些情况下,我们会需要比较两张表的数据是否一样. 假设有两张表A与表B他的字段相同,但是当中的数据可能不同,而且有些字 ...

最新文章

  1. 用于半监督语义分割的基于掩码的数据增强
  2. Index Condition Pushdown Optimization
  3. android studio 写文件,在Android Studio中从我自己的类读取和写入文本文件
  4. 16、HTML密码框
  5. 友盟消息推送UPush
  6. 20165331 第二周学习总结
  7. 筱筱看博客(uni-app、mumu模拟器、真机测试)
  8. vant-list上拉加载onload事件触发多次
  9. python特殊函数_SciPyTutorial-特殊函数
  10. 什么是软件 驱动软件 什么是程序
  11. Win10打印机使用异常?windows系统如何删除更新补丁解决方案
  12. Codeforces Global Round 11 ABCD题解
  13. FFmpeg转换格式与视频合并
  14. 华为云前端一阶段HTML入门(常用标签 表格标签 表单)
  15. 5-9 打印倒直角三角形图案
  16. 图书速读 | 一分钟读完《如何高效学习》
  17. web安全-xss弹弹弹
  18. BIOS密码无法修改,对BIOS放电也不行
  19. 【vim】撤销和恢复撤销快捷键
  20. 结对编程(Pair programming)

热门文章

  1. C# Web.config连接MySQL、SQL Server数据库配置
  2. Hook(钩子)技术的含义和工作原理
  3. oracle数据partition,详解Oracle partition分区表
  4. linux find查找文件并删除文件,Linux find 查找 并删除文件 杀掉进程
  5. Android DownloadManager下载状态查询(2)
  6. 高项第四版十大管理、49个过程、五大过程组【趣味联想记忆口诀,助你一篇牢牢记住!】
  7. 有哪些含金量高,技能型强的证书?
  8. Android P包管理机制之PackageManager简介
  9. 三星android测试机型,三星最新Android 10升级计划公布!共22款机型,有你的吗?...
  10. 关于短信群发软件的开发