Si dos consultas no devuelven el mismo número de columnas, puede ser
posible crear una Consulta Compuesta con estas dos consultas generando columnas
adicionales con valores Null. El uso de TO_CHAR(NULL) genera valores que hagan
falta.
Una consulta compuesta puede consistir de más de dos consultas, como
podemos controlar la precedencia de los operadores si todos están al mismo
nivel, esto es posible mediante el uso de paréntesis. Sin el uso de paréntesis
los operadores serán aplicados secuencialmente en el orden en cual fueron
especificados. Los paréntesis
pueden controlar la precedencia explícitamente.
SELECT employee_id,
first_name, NULL LAST_NAME
FROM   employees
WHERE  employee_id IN (101,102,103,104,105)
UNION
SELECT employee_id,
NULL FIRST_NAME, last_name
FROM   employees
WHERE  employee_id IN (106,107,108,109,110);
SELECT employee_id,
first_name, TO_CHAR(NULL) LAST_NAME
FROM   employees
WHERE  employee_id IN (101,102,103,104,105)
UNION
SELECT employee_id,
TO_CHAR(NULL) FIRST_NAME, last_name
FROM   employees
WHERE  employee_id IN (106,107,108,109,110);
SELECT employee_id,
first_name, last_name
FROM   employees staff_permanent
WHERE  employee_id IN
(100,101,102,103,104,105,106,107,108)
UNION
SELECT employee_id,
first_name, last_name
FROM   employees staff_permanent
WHERE  employee_id IN
(109,110,111,112,113,114,115,116,117)
MINUS
SELECT employee_id,
first_name, last_name
FROM   employees blacklist
WHERE  employee_id IN (100,105,110,115);
SELECT employee_id,
first_name, last_name
FROM   employees staff_permanent
WHERE  employee_id IN
(100,101,102,103,104,105,106,107,108)
UNION
(SELECT employee_id,
first_name, last_name
FROM   employees staff_permanent
WHERE  employee_id IN
(109,110,111,112,113,114,115,116,117)
MINUS
SELECT employee_id,
first_name, last_name
FROM   employees blacklist
WHERE  employee_id IN (100,105,110,115));
Comentarios
Publicar un comentario