欢迎来到天天文库
浏览记录
ID:14190098
大小:55.04 KB
页数:3页
时间:2018-07-26
《oracle中对两个数据表交集的查询》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Oracle中对两个数据表交集的查询Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,据说,在使用oracle时应有这样的思想,那就是在SQL中几乎可以实现任何一种想法。 下面向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法,笔者感到这两种方法执行效率高、使用方便。 第一种方法:利用操作符intersect intersect操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数量和数据类型必须完全相同。 举例说明: 表A的数据结构:中文名称字段名类型长度学号codeC4姓名
2、nameC8 表B的数据结构:中文名称字段名类型长度学号Student_codeC4姓名Student_nameC8分数scoreN3 表A的数据为: ('1101','韩甲'),('1102','丁乙') 表B的数据为: ('1101','韩甲',99),('1102','丁乙',89),('1103','徐静',94) 在oracle中运行以下查询,图1显示了这个查询的结果:SQL>selectcode,namefromAintersectselectstudent_code,student_namefromB; 图1使用intersect操作符查询的结果第二种方法:
3、in子句 in子句可以在子查询中为where子句计算所得的值创建一个列表。这种方法与前一种方法有所不同的是,前一种方法比较多列但只使用一个intersect就行了,而一个in子句用来比较两个子查询的一列,比较几列就要使用几个in子句。下面举例说明如何取得两个查询的交集。 仍以A和B两张数据表为例,在oracle中运行以下查询,图2显示了这个查询的结果:SQL>selectcode,namefromAwhereA.codein(selectstudent_codefromB)andA.namein(selectstudent_namefromB)orderbyA.code; 查询结果如
4、图2所示。 图2使用in子句查询的结果
此文档下载收益归作者所有