Índice
Podemos combinar múltiples consultas utilizando los operadores UNION, UNION ALL, INTERSECT y MINUS
.
Los correspondientes campos y/o expresiones que aparecen en la listas de los SELECT
de las consultas a las que se le aplican los operadores anteriores deben coincidir en tipo y número, o al menos, tener un tipo compatible o sobre el cual se pueda aplicar un casting automático.
SELECT location_id, department_name "Department", TO_CHAR(NULL) "Warehouse" FROM departments
UNION
SELECT location_id, TO_CHAR(NULL) "Department", warehouse FROM warehouses;
Cuando se aplica el operador UNION
sobre dos consultas, el resultado serán los registros de la primera consulta más los registros de la segunda consulta, eliminando los registros duplicados.
Cuando se aplica el operador UNION ALL
sobre dos consultas, el resultado serán los registros de la primera consulta más los registros de la segunda consulta.
SELECT product_id FROM inventories
UNION ALL
SELECT product_id FROM order_items;
Cuando se aplica el operador INTERSECT
sobre dos consultas, el resultado serán los registros duplicados o coincidentes en la primera y segunda consulta.
SELECT product_id FROM inventories
INTERSECT
SELECT product_id FROM order_items;
Cuando se aplica el operador MINUS
sobre dos consultas, el resultado serán los registros que están en la primera consulta pero que no aparecen en la segunda consulta.
SELECT product_id FROM inventories
MINUS
SELECT product_id FROM order_items;
Indicaciones
- El orden de las cláusulas en las sentencia
SELECT
es significativo. Se puede omitir cualquiera de las cláusulas opcionales, pero cuando se usan, deben aparecer en el orden apropiado. - Cuando se ejecuta la sentencia
SELECT
con las cláusulaWHERE
,GROUP BY
, yHAVING
el orden de ejecución es el siguiente:- El
WHERE
excluye las filas que no cumplen la condición. - El
GROUP BY
colecciona las filas escogidas dentro de un grupo por cada uno de los valores de la cláusulaGROUP BY
. - Las funciones agregado calculan los valores por cada grupo.
- La cláusula
HAVING
por último excluye las filas que no cumplen la condición de búsqueda.
- El
Siguiente Tema: Consulta de Datos - Subconsultas.
¿Has visto algún error?: Por favor, ayúdame a corregirlo contactando conmigo o comentando abajo.