Combinar tablas con UNION, INTERSECT y EXCEPT
Con las operaciones de conjunto estándar UNION, INTERSECT y EXCEPT/MINUS, puede combinar los resultados desde dos o más sentencias SELECT para construir consultas más complejas.
- UNION [DISTINCT] y UNION ALL
- INTERSECT [DISTINCT] y INTERSECT ALL
- EXCEPT [DISTINCT] o MINUS [DISTINCT] y EXCEPT ALL, MINUS ALL
- Los conjuntos de resultado de ambas consultas deben tener el mismo número de columnas.
- Las columnas correspondientes de las dos consultas deben tener el mismo tipo de datos o deben ser convertibles implícitamente al mismo tipo de datos.
Por ejemplo, puede tener una columna en la primera consulta de componente que sea del tipo de datos CHAR correspondiente a la columna VARCHAR de la segunda consulta de componente o viceversa. Sin embargo, no puede tener una columna en el primer componente que sea una DATE y la columna correspondiente del componente sea un CHAR. Para obtener más información sobre las conversiones de tipos de datos, consulte Promoción de tipos de datos.
<SELECT-statement>
{UNION | INTERSECT | EXCEPT | MINUS} [ALL | DISTINCT]
<SELECT-statement>
{UNION | INTERSECT | EXCEPT | MINUS} [ALL | DISTINCT]
<SELECT-statement>]*
[ORDER BY …]
[LIMIT …]
- Si los nombres de las columnas correspondientes coinciden, SQL utiliza ese nombre de columna en el resultado. Si los nombres de las columnas correspondientes son distintos, SQL utiliza el nombre de columna de la primera consulta de la sentencia de conjunto. Si desea cambiar el nombre a una columna del resultado, utilice una cláusula AS en la primera consulta.
- Puede seleccionar una cláusula ORDER BY opcional solo en la consulta final de la sentencia de conjunto. SQL aplica la ordenación al resultado final combinado.
- Puede especificar una cláusula LIMIT opcional después de ORDER BY. SQL aplica el límite al resultado final combinado.
- Puede especificar GROUP BY y HAVING solo en consultas individuales. No puede utilizarlas para que afecten al resultado.