Union Query: by Neil A. Basabe
Union Query: by Neil A. Basabe
By
Neil A. Basabe
1
UNION
2
Multiple Queries – Multiple Reports
--Query 1
SELECT some_columns DATA FROM QUERY 1
FROM some_table(s)
WHERE some_condition(s)
--Query 2
SELECT some_columns
DATA FROM QUERY 2
FROM some_table(s)
WHERE some_condition(s)
3
Unioning Queries Together – Single Report
--Query 1
SELECT some_columns DATA FROM QUERY 1
FROM some_table(s)
WHERE some_condition(s)
UNION ALL
--Query 2
SELECT some_columns DATA FROM QUERY 2
FROM some_table(s)
WHERE some_condition(s)
Note: By following the UNION RULES, and by adding a UNION
ALL clause between the queries the data from both queries
appears in a single report.
4
Example 1
SELECT WORKDEPT, LASTNAME CONCAT ','
CONCAT FIRSTNME AS NAME,
'MALE' AS GENDER
FROM EMPLOYEE
WHERE SEX = 'M' AND WORKDEPT IN
('A00','C01')
UNION ALL
SELECT WORKDEPT, LASTNAME CONCAT ',' CONCAT
FIRSTNME AS NAME, 'FEMALE' AS GENDER
FROM EMPLOYEE
WHERE SEX='F' AND WORKDEPT IN
('A00','C01')
ORDER BY WORKDEPT;
5
6
Example 2
SELECT MGRNO, 'DEPT:', DEPTNAME
FROM DEPARTMENT
WHERE MGRNO IS NOT NULL
UNION ALL
SELECT MGRNO,'MGR:',LASTNAME
FROM DEPARTMENT D, EMPLOYEE E
WHERE D.MGRNO = E.EMPNO;
7
8
Example 3
SELECT LASTNAME, EDLEVEL
FROM EMPLOYEE
WHERE JOB='ANALYST'
UNION ALL
SELECT LASTNAME, EDLEVEL
FROM EMPLOYEE
WHERE EDLEVEL = 18;
9
10
Example 4
SELECT EMPNO, SUBSTR(FIRSTNME,1,1) CONCAT
',' CONCAT MIDINIT, LASTNAME, SALARY AS
INCOME, 1 AS SORT
FROM EMPLOYEE
UNION ALL
SELECT EMPNO,'','',BONUS, 2 AS SORT
FROM EMPLOYEE
UNION ALL
SELECT EMPNO, '','',COMM, 3 AS SORT
FROM EMPLOYEE
UNION ALL
SELECT EMPNO,'','SUM:',
SALARY+BONUS+COMM,4 AS SORT
FROM EMPLOYEE
ORDER BY EMPNO, SORT;
11
12
UNION ALL RULES
13
Rule # 1: The number of columns in each
SELECT must the same.
SELECT col-1, col-2, col-3, col-4
FROM table-1
WHERE condition
UNION ALL
UNION ALL
16
Rule # 4: The number of UNION
statements in a UNION query
should be equal to the number of
SELECT statements minus one.
17
Laboratory Exercises
18