UNION combines the results of two queries and eliminates duplicate rows from the result set.
SELECT 1 AS Value FROM DUAL UNION SELECT 2 AS Value2 FROM DUAL UNION SELECT 3 AS Value3 FROM DUAL UNION SELECT 2 AS Value4 FROM DUAL UNION SELECT 1 AS Value5 FROM DUAL UNION SELECT 5 AS Value6 FROM DUAL UNION SELECT 4 AS Value7 FROM DUAL UNION SELECT 1 FROM DUAL ORDER BY 1; VALUE ---------- 1 2 3 4 5
--1st query SELECT Ename FROM Emp WHERE Deptno = 20; ENAME ---------- JONES SCOTT FORD SMITH ADAMS --2nd query SELECT Ename FROM Emp WHERE Job = 'CLERK'; ENAME ---------- SMITH ADAMS JAMES MILLER
When you combine above component queries through UNION, result set will be all distinct rows. That means UNION removes duplicates.
The removal of duplicates requires extra processing, so you should consider using UNION ALL
where ever possible.
SELECT Ename FROM Emp WHERE Deptno = 20 UNION SELECT Ename FROM Emp WHERE Job = 'CLERK'; ENAME ---------- ADAMS FORD JAMES JONES MILLER SCOTT SMITH 7 rows selected.