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

Oracle
Oracle数据库系统紧急故障处理方法
Oracle SQL性能优化系列学习一
Oracle 数据库操作技巧集
Oracle组件实现动态Web数据库
ORACLE常见错误代码的分析与解决二
ORACLE常见错误代码的分析与解决三
在Oracle 8x实现自动断开后再连接
深刻理解Oracle数据库的启动和关闭
Oracle对两个数据表交集的查询
Oracle 8i字符集乱码问题析及其解决办法
Oracle 数据库管理脚本命名规范
Oracle不同数据库间对比分析脚本
Oracle数据库安全策略
Oracle数据库的空间管理技巧
Oracle数据库系统使用经验六则
ORACLE数据库应用开发常见问题及排除
Oracle系统表外键的更名
Oracle约束管理脚本
如何确定Oracle数据库表重复的记录
Oracle数据库索引的维护

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 125 ::
收藏到网摘: 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的体会,如有不当之处,请不吝赐教。

上一页