当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle对两个数据表交集的查询

Oracle
Oracle 数据库自动存储管理-安装配置
ORACLE 10g 安装教程[图文]
Oracle 的入门心得 强烈推荐
Windows Oracle常见服务介绍
oracle 发送邮件 实现方法
在Spring中用select last_insert_id()时遇到问题
oracle sqlplus 常用命令大全
oracle 触发器 学习笔记
Oracle 随机数
ProC 连接Oracle代码
MS Server和Oracle中对NULL处理的一些细节差异
oracle10g 数据备份与导入
oracle 安装与SQLPLUS简单用法
Oracle SID存在解決方法
Oracle 低权限数据库账户得到 OS 访问权限 提权利用
oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
oracle 集合
oracle 字符串转成行
Oracle10g 安装方法
oracle 日期函数集合(集中版本)

Oracle对两个数据表交集的查询


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 142 ::
收藏到网摘: n/a

正在看的ORACLE教程是:Oracle对两个数据表交集的查询。

Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就是在SQL中几乎可以实现任何一种想法。
  下面向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法,笔者感到这两种方法执行效率高、使用方便。
  第一种方法:利用操作符intersect
  intersect操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数量和数据类型必须完全相同。
  举例说明:
  表A的数据结构:

  表B的数据结构:

  表A的数据为:
  ('1101 ','韩甲'),('1102 ','丁乙')
  表B的数据为:
  ('1101 ','韩甲',99),('1102 ','丁乙',89),('1103 ','徐静',94)
  在oracle中运行以下查询,图1显示了这个查询的结果:

[NextPage]

第二种方法: in子句
  in子句可以在子查询中为where子句计算所得的值创建一个列表。这种方法与前一种方法有所不同的是,前一种方法比较多列但只使用一个intersect就行了,而一个in子句用来比较两个子查询的一列,比较几列就要使用几个in子句。下面举例说明如何取得两个查询的交集。
  仍以A和B两张数据表为例,在oracle中运行以下查询,图2显示了这个查询的结果:

  查询结果如图2所示。

  以上为笔者使用oracle7.3的体会,如有不当之处,请不吝赐教。

上一页