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

Oracle
Oracle数据库的使用技巧五则
Oracle数据库的启动和关闭方式
解决Oracle并行服务器的相关问题
SuSE Linux10上安装Oracle数据库方法
正确进行Oracle数据库性能完全保护
最影响Oracle系统性能的初始化参数
掌握MIS系统实例中Oracle的安全策略
深入了解Oracle数据库后台进程的功能
如何用Oracle创建实例的参数需求
Oracle非法数据库对象引起的错误
掌握Oracle数据库中sequence的用法
黑客狙击Oracle系统的八大常用套路
数据从MySQL迁移到Oracle的注意事项
使用utl_smtp从Oracle中发送电子邮件
Oracle操作中常见的错误和解决方法
Oracle数据库中sequence的用法
使Oracle数据库保持优良性能
Oracle数据库中的临时表用法
Oracle10gR2中调整user commit的方法
SQL Server 2005对DBA的要求是否会更高

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


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

上一页