Using Oracle Set Operators(Union,Union All,Intersect and Minus/Except)
Oracle Set operators can be used to select data from multiple tables. They combine the results of two or more queries. When using the Set operators
a) Each SELECT clause must have the same number of column
b) Column must be of same data-type
c) Column should be specified in the same order in all the select clauses.
There are 4 Set operators:
| UNION | It returns all unique rows returned from both queries |
| UNION ALL | It returns all rows including duplicates |
| INTERSECT | It returns only the rows returned from both queries |
| MINUS | It returns unique rows selected by first query but not the rows selected from second query |
Oracle Union Operator :
Oracle Union operator is used to combine the result sets of two or moreĀ SELECT statements. It combines the both SELECT statement result set and removes duplicate rows between them.So it basically returns the distinct rows

UNION
SELECT city_name FROM SUPP_DATA;
This query will return distinct rows Ā of cities from āCust_dataā and āSupp_dataā
Oracle Union All
Oracle Union All operator is used to combine the result sets of two or moreĀ SELECT statements. It combines the both SELECT statement result sets and returnĀ as it is. So it may contain duplicate also depending on the data-set
SELECT city_name FROM CUST_DATA
UNION All
SELECT city_name FROM SUPP_DATA
;
This query will return all rows(Duplicate rows also)Ā of cities from āCust_dataā and āSupp_dataā

Difference betweenĀ Union and Union All in Oracle
Union returns the distinct rowsĀ while Union all returns all the rows. So we have to very careful while choosing these set operators
Oracle Intersect
Oracle Intersect operator is used to combine the result sets of two or moreĀ SELECT statements. It combines the both SELECT statement data-sets and returnĀ the distinct common rows between the statements. So If a record exists in one query and not in the other, it will be omitted from the INTERSECT results.

The results are shown by the shaded portion in the above figure
SELECT city_name FROM CUST_DATA
INTERSECT
SELECT city_name FROM SUPP_DATA
;
This query will return common city name from āCust_dataā and āSupp_dataā

Difference between Intersect Vs Join
1) INTERSECT operator is used to retrieve the common records from both the select clause of the Intersect Operator Whereas Join is used to reterive data from two tables based on specified condition
2) INTERSECT does the comparison for all columns while INNER JOIN only the specified columns.
3) INTERSECT operator returns almost same results as INNER JOIN clause many times.
Oracle Minus
Sql minus operator is used to combine the result sets of two or moreĀ SELECT statements. It combines the both SELECT statement and returnĀ theĀ rows which is selected from first select statement and then remove from the data-set all the rows retrieved from second select statement

The results are shown by the shaded portion in the above figure
SELECT city_name FROM CUST_DATA
MINUS
SELECT city_name FROM SUPP_DATA
;
This query will returnĀ city name from āCust_dataā minus the city name āSupp_dataā

Here since all the data returned from select statement is same,it did not generate any rows.
Lets insert one different row in cust_data and see the results

Now lets see if we do minus of cust_data from supp_data
SELECT city_name FROM SUPP_DATA
MINUS
SELECT city_name FROM CUST_DATA
;

We dont minus operator inĀ Many RDBMS like sql server ,mysql. There we use except in place of minus and it has same functionality as minus
These all sql set operators are valid for RDBMS used in MarketĀ like Oracle,mysql, sql server, Postgres, Teradata
Related Articles
delete duplicate records in oracle : Tips and ways on How to delete duplicate rows from oracle table . Various options are given to delete the duplicate rows without any issues
Oracle Sql tutorials : Contains the list of all the useful Oracle sql articles. Explore them to learn about Oracle Sql even if you know Oracle Sql
Oracle interview questions : Check out this page for Top 49 Oracle Interview questions and answers : Basics , Oracle SQL to help you in interviews.Additional material is also provided
where clause in oracle : Restricting the data set, where clause, what is where clause in sql statement, comparison operatorās
single row functions in Oracle : Check out this to find out Single row functions in sql,Oracle data functions,Numeric functions in sql ,Character function in sql