oracle 之set运算符

set运算符:

用于把两个集合集做运算

UNION / UNION ALL 

INTERSECT

MINUS

union:

取两个集合的并集,无相同记录

代码示例:

下面查找表job_history和表employees中employee_id,job_id,总共有115条记录

oracle 之set运算符

 

union all:

取两个集合的并集的所有记录

下面查找表job_history和表employees中employee_id,job_id,总共有117条记录,与用union相比,多了两条重复记录

代码示例:

oracle 之set运算符

intersect:

返回两个集合的交集

代码示例:

下面查找表job_history和表employees中employee_id,job_id,总共有2条记录,其实就是union all 比union 多的两条记录

oracle 之set运算符

minus:

返回两个集合的差集

代码示例:

下面查找表job_history和表employees中employee_id,job_id,总共有105条记录

oracle 之set运算符

使用 SET 操作符注意事项:

在SELECT 列表中的列名和表达式在数量和数据类型上要相对应

括号可以改变执行的顺序

除 UNION ALL之外,系统会自动将重复的记录删除

系统将第一个查询的列名显示在输出中

除 UNION ALL之外,系统自动按照第一个查询中的第一个列的升序排列 

ORDER BY 子句:

  • 只能在语句的最后出现
  • 可以使用第一个查询中的列名, 别名或相对位置

order by 代码示例:

oracle 之set运算符