Set Operatorpostgres=# select * from dept; SET OPERATOR ------------ UNION UNION ALL INTERSECT EXCEPT postgres=# select * from dept; deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK 20 | RESEARCH | DALLAS 30 | SALES | CHICAGO 40 | OPERATIONS | BOSTON postgres=# select * from dept_tab; deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK 20 | RESEARCH | DALLAS 50 | DEVELOPER | LONDON 60 | MARKETING | MEXICOUNION : It returns distinct rows selected by either query. ![]() postgres=# select * from dept union select * from dept_tab; deptno | dname | loc --------+------------+---------- 60 | MARKETING | MEXICO 20 | RESEARCH | DALLAS 10 | ACCOUNTING | NEW YORK 40 | OPERATIONS | BOSTON 30 | SALES | CHICAGO 50 | DEVELOPER | LONDONUNION ALL : It returns all rows selected by either query. ![]() postgres=# select * from dept union all select * from dept_tab; deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK 20 | RESEARCH | DALLAS 30 | SALES | CHICAGO 40 | OPERATIONS | BOSTON 10 | ACCOUNTING | NEW YORK 20 | RESEARCH | DALLAS 50 | DEVELOPER | LONDON 60 | MARKETING | MEXICOINTERSECT : It returns all distinct rows selected by both query. postgres=# select * from dept intersect select * from dept_tab; deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK 20 | RESEARCH | DALLASEXCEPT : It returns all distinct rows selected by first query only. postgres=# select * from dept except select * from dept_tab; deptno | dname | loc --------+------------+--------- 40 | OPERATIONS | BOSTON 30 | SALES | CHICAGO « Previous (Postgres - Joins) |