ORACLE | ||||||||
| ||||||||
| ||||||||
| ||||||||
| ||||||||
| ||||||||
| ||||||||
| ||||||||
|
Oracle - Union
UNION operator is used to combine the result sets of two or more Oracle SELECT statements. It combines the both SELECT statement and removes duplicate rows between them.
Each SELECT statement within the UNION operator must have the same number of fields in the result sets with similar data types.
SELECT expression1, expression2, ... expression_n
FROM table1
WHERE conditions
UNION
SELECT expression1, expression2, ... expression_n
FROM table2
WHERE conditions;
Note: The number of expressions must be same in both of the SELECT statements.
SELECT supplier_id
FROM suppliers
UNION
SELECT supplier_id
FROM order_details
Supplier_ID |
---|
1 |
2 |
3 |
20 |
21 |
22 |
25 |
28 |
30 |
31 |
More than 10 rows available.Increase rows selector to view more rows |
In this example, supplier_id is defined in both of the table "suppliers" and "order_details". After the UNION, it would appear once in the result set because Oracle UNION operator removes duplicate sets.
Note: If you don't want to remove duplicates, use Oracle UNION ALL operator.
The Oracle UNION operator can be used with ORDER BY clause to orders the results of the query.
SELECT supplier_id, supplier_name
FROM suppliers
WHERE supplier_id <= 20
UNION
SELECT s_id, s_name
FROM shopkeepers
WHERE s_name = 'dhirubhai'
ORDER BY 1;
Supplier_ID | Supplier_Name |
---|---|
1 | Bata shoes |
1 | dhirubhai |
2 | Kingfisher |
3 | VOJO |
20 |
In the above example, result is sorted by supplier_name/s_name in ascending order, as denoted by ORDER BY 1.