oracle数据库SQL开发之集合运算
程序员文章站
2022-05-06 23:43:39
...
oracle数据库SQL开发之集合运算
集合运算
一、联合(UNION)运算
– 返回由任一查询结果集包含的行,并且去除重复行,并且按照查询结果集的第一列序排序。
– 使用原则
• 多个被联合的查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同。
• 如果多个查询结果都有NULL值,整个结果中只包含一个NULL值。
• 每个查询不能包含自己的Order by子句,只能在联合之后使用Order by子句。
SQL>SELECT deptno,to_char(NULL),ename,hiredate FROM emp
UNION
SELECT deptno,loc,to_char(NULL),to_date(NULL) FROM dept;
二、完全联合 (UNION ALL) 运算
– 返回由任一查询结果集包含的行,并且包含重复行,默认情况下不对结果集进行排序。
– 使用原则
• 多个被联合的查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同。
• 如果多个查询结果都有NULL值,不被去掉。
• 每个查询不能包含自己的Order by子句,只能在联合之后使用Order by子句。
– 注意:使用UNION ALL会比UNION的速度快,因为省去了去掉重复记录和排序的时间。
三、相交运算(intersect)
– 返回多个查询结果集的 公有行。
– 使用原则
• 多个查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同。
• 相交运算不忽略空值。
–查询哪些员工做过岗位调动
SQL>SELECT empno FROM emp
INTERSECT
SELECT empno FROM emp_jobhistory;
四、相减运算 (minus)
– 返回第一个查询中存在 而第二个查询中不存在的行记录。
– 使用原则
• 多个查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同。
• 相减运算不忽略空值。
–查询哪些员工没做过岗位调动
SQL>SELECT empno FROM emp
MINUS
SELECT empno FROM emp_jobhistory;
上一篇: 能够编译运行python的软件有哪些
下一篇: php懒人函数 自动添加数据_php技巧