union , intersect , minus

create table employees
(
employee_id number(8) not null,
first_name varchar2(20) ,
last_name varchar2(25) not null,
email varchar2(25) ,
phone_number varchar2(20),
hire_date date not null,
job_id varchar2(10),
salary number(8,2),
commission_pct number(2,2),
manager_id number(6),
department_id number(4)
);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (1000,100,20000,'Stone',sysdate -200);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (1001,101,20000,'Strange',sysdate -100);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (1002,101,9000,'Atlas',sysdate -100);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (1003,102,9000,'Farley',sysdate -200);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (1004,102,9000,'Lake',sysdate -200);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (1005,102,9000,'Lance',sysdate -200);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (1006,100,9000,'Zoo',sysdate -200);
insert into employees(employee_id,manager_id,salary,last_name,hire_date) values (100,null,80000,'Val',sysdate -100);
select t.* from employees t;
select last_name, manager_id, hire_date, salary from employees
where manager_id = 100
union
select last_name, manager_id, hire_date, salary from employees
where hire_date > sysdate - 180
intersect
select last_name, manager_id, hire_date, salary from employees
where salary > 10000
rollback;
;原文:https://www.cnblogs.com/hyang0/p/10593575.html