`
Ben.Sin
  • 浏览: 229246 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle 取两个表中数据的交集

阅读更多

Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据

例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集了

employee

CODE

NAME

GENDER

001 Tom M
002 Jerry M
003 Ana F

salary

CODE

SALARY

001 2800
002 2500
003 3000

方法1:利用操作符INTERSECT

INTERSECT 操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前提是两个查询的列的数量和数据类型必须完全相同。

SELECT CODE FROM EMPLOYEE WHERE GENDER = 'M'
INTERSECT
SELECT CODE FROM SALARY WHERE SALARY > 2500

第一条SQL的结果为

CODE
----------
001
002

第二条SQL的结果为

CODE
----------
001
003

INTERSECT的结果

CODE
----------
001

方法2:利用关系SQL

SELECT A.CODE FROM EMPLOYEE A, SALARY B
WHERE A.CODE = B.CODE AND A.GENDER = 'M' AND B.SALARY > 2500

结果为

CODE
----------
001

以上两种方法是本人比较常用的方法,尤其第二种,充分体现关系数据的精髓所在。但如果两个表结构比较复杂,而且关系条件也比较难实现的话,第一种显然能够简单地得到需要的结果,也不失为一种好方法。

分享到:
评论

相关推荐

    Oracle中对两个数据表交集查询简介

    Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,本文向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法。第一种方法:利用操作符intersect,intersect操作符...

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

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

    最全的oracle常用命令大全.txt

    例:将test表中的Count列宽度加长为10个字符 sql>alter atble test modify (County char(10)); b、将一张表删除语句的格式如下: DORP TABLE 表名; 例:表删除将同时删除表的数据和表的定义 sql>drop table ...

    阿里巴巴大数据之路——数据技术篇.pdf

    实例参考如下: SQL的Join语法有很多, inner join(等值连接) 只返回两个表中联结字段相等的⾏, left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录, right join(右联接) 返回包括右表中的...

    oracle 合并查询 事务 sql函数小知识学习

    表查询: 合并查询:使用... intersect 用来取两个结果的交集。 minus用来取两个结果的差集。 使员工scott的岗位,工资,补助与SMITH员工一样。(使用子查询修改数据) 代码如下: update emp set (job,sal,comm)=(se

    SQL编写规范(数据库操作规范)

     EXPLAIN PLAN的分析结果是用缩进的格式排列的,最内部的操作将最先被解读,如果两个操作处于同一层中,带有最小操作号的将首先被执行    目前许多第三方的工具如PLSQL Developer和TOAD等都提供了极其方便的...

    orcale常用命令

    例:将test表中的Count列宽度加长为10个字符 sql>alter atble test modify (County char(10)); b、将一张表删除语句的格式如下: DORP TABLE 表名; 例:表删除将同时删除表的数据和表的定义 sql>drop table ...

    《Oracle数据库编程指南》之11-03:集合运算符(Set Operators)

    集合运算符将两个组件查询的结果组合成一个结果集。故包含集合运算符的查询称为复合查询。 表:集合运算符 运算符 含义 返回 UNION 并集 由任何查询选择的所有不重复行 UNION ALL 合并所有 由任何查询选择...

    精通SQL 结构化查询语言详解

    10.2.4 EXISTS子查询实现两表交集  10.2.5 SOME/ALL子查询  10.2.6 UNIQUE子查询  10.3 相关子查询  10.3.1 使用IN引入相关子查询  10.3.2 比较运算符引入相关子查询 10.3.3 在HAVING子句中使用相关子...

    程序员的SQL金典6-8

     4.7 不从实体表中取的数据  4.8 联合结果集  4.8.1 简单的结果集联合  4.8.2 联合结果集的原则  4.8.3 UNION ALL  4.8.4 联合结果集应用举例 第5章 函数  5.1 数学函数  5.1.1 求绝对值  5.1.2 求指数  ...

    程序员的SQL金典7-8

     4.7 不从实体表中取的数据  4.8 联合结果集  4.8.1 简单的结果集联合  4.8.2 联合结果集的原则  4.8.3 UNION ALL  4.8.4 联合结果集应用举例 第5章 函数  5.1 数学函数  5.1.1 求绝对值  5.1.2 求指数  ...

    程序员的SQL金典4-8

     4.7 不从实体表中取的数据  4.8 联合结果集  4.8.1 简单的结果集联合  4.8.2 联合结果集的原则  4.8.3 UNION ALL  4.8.4 联合结果集应用举例 第5章 函数  5.1 数学函数  5.1.1 求绝对值  5.1.2 求指数  ...

    程序员的SQL金典3-8

     4.7 不从实体表中取的数据  4.8 联合结果集  4.8.1 简单的结果集联合  4.8.2 联合结果集的原则  4.8.3 UNION ALL  4.8.4 联合结果集应用举例 第5章 函数  5.1 数学函数  5.1.1 求绝对值  5.1.2 求指数  ...

    程序员的SQL金典.rar

     4.7 不从实体表中取的数据  4.8 联合结果集  4.8.1 简单的结果集联合  4.8.2 联合结果集的原则  4.8.3 UNION ALL  4.8.4 联合结果集应用举例 第5章 函数  5.1 数学函数  5.1.1 求绝对值  5.1.2 求指数  ...

    精通sql结构化查询语句

    10.3.2 使用EXISTS子查询实现两表交集 10.3.3 使用EXISTS子查询实现两表并集 10.3.4 使用NOT EXISTS的子查询 10.4 相关子查询 10.4.1 使用IN引入相关子查询 10.4.2 使用比较运算符引入相关子查询 10.4.3 在HAVING...

    经典SQL脚本大全

    │ │ 8.2.5 校验表中数据是否有循环编码的通用存储过程.sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql ...

    Sqlserver2000经典脚本

    │ 2.5.3 工作日处理函数(自定义节假日).sql │ │ 2.5.4 计算工作时间的函数.sql │ │ │ └─其他 │ 交叉表.sql │ 任意两个时间之间的星期几的次数-横.sql │ 任意两个时间之间的...

Global site tag (gtag.js) - Google Analytics