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

Oracle
Oracle Tuning技巧总结
如何选择Oracle优化器
如何使用Logmnr方法分析数据库日志
保持Oracle数据优良性能的若干诀窍
Oracle 10g R2ORA-3136 错误解决
Oracle中行迁移和行链接的清除及检测
不要忽视Oracle 10g STATSPACK
ORACLE性能调整--统计信息的迁移
用Oracle TimesTen加速Oracle数据库
在Oracle 10g中如何获得索引建议
Oracle中的SQL语句性能调整原则
Oracle Spatial新驱动的添加记录实例
在Linux系统下如何优化Oracle具体步骤
Oracle数据库删除两表中相同数据的方法
Oracle 容灾复制解决方案分析Shar Plex
oltp系统,数据块大小用4k还是8k好?
数据库中如何使用SQL查询连续号码段
在数据字典中直接修改表列的名称和顺序
讲解Oracle里抽取随机数的多种方法
使用一条SQL语句删除表中重复记录

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


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

上一页