oracle 之set运算符
set运算符:
用于把两个集合集做运算
UNION / UNION ALL
INTERSECT
MINUS
union:
取两个集合的并集,无相同记录
代码示例:
下面查找表job_history和表employees中employee_id,job_id,总共有115条记录
union all:
取两个集合的并集的所有记录
下面查找表job_history和表employees中employee_id,job_id,总共有117条记录,与用union相比,多了两条重复记录
代码示例:
intersect:
返回两个集合的交集
代码示例:
下面查找表job_history和表employees中employee_id,job_id,总共有2条记录,其实就是union all 比union 多的两条记录
minus:
返回两个集合的差集
代码示例:
下面查找表job_history和表employees中employee_id,job_id,总共有105条记录
使用 SET 操作符注意事项:
在SELECT 列表中的列名和表达式在数量和数据类型上要相对应
括号可以改变执行的顺序
除 UNION ALL之外,系统会自动将重复的记录删除
系统将第一个查询的列名显示在输出中
除 UNION ALL之外,系统自动按照第一个查询中的第一个列的升序排列
ORDER BY 子句:
- 只能在语句的最后出现
- 可以使用第一个查询中的列名, 别名或相对位置
order by 代码示例: