> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación de la cláusula UNION

# Cláusula UNION

Puede usar `UNION` especificando explícitamente `UNION ALL` o `UNION DISTINCT`.

Si no especifica `ALL` ni `DISTINCT`, dependerá de la configuración `union_default_mode`. La diferencia entre `UNION ALL` y `UNION DISTINCT` es que `UNION DISTINCT` aplicará una operación de eliminación de duplicados al resultado de la unión; es equivalente a `SELECT DISTINCT` sobre una subconsulta que contiene `UNION ALL`.

Puede usar `UNION` para combinar cualquier número de consultas `SELECT` uniendo sus resultados. Ejemplo:

```sql title="Query" theme={null}
SELECT CounterID, 1 AS table, toInt64(count()) AS c
    FROM test.hits
    GROUP BY CounterID

UNION ALL

SELECT CounterID, 2 AS table, sum(Sign) AS c
    FROM test.visits
    GROUP BY CounterID
    HAVING c > 0
```

Las columnas del resultado se emparejan por su índice (el orden dentro de `SELECT`). Si los nombres de las columnas no coinciden, los nombres del resultado final se toman de la primera consulta.

La conversión de tipos se realiza en las uniones. Por ejemplo, si dos consultas que se combinan tienen el mismo campo con tipos `Nullable` y no `Nullable` de un tipo compatible, el `UNION` resultante tendrá un campo de tipo `Nullable`.

Las consultas que forman parte de `UNION` pueden ir entre `()`. [ORDER BY](/es/reference/statements/select/order-by) y [LIMIT](/es/reference/statements/select/limit) se aplican a cada consulta por separado, no al resultado final. Si necesita aplicar una conversión al resultado final, puede colocar todas las consultas con `UNION` en una subconsulta en la cláusula [FROM](/es/reference/statements/select/from).

Si usa `UNION` sin especificar explícitamente `UNION ALL` o `UNION DISTINCT`, puede indicar el modo de unión mediante la configuración [union\_default\_mode](/es/reference/settings/session-settings#union_default_mode). Los valores de esta configuración pueden ser `ALL`, `DISTINCT` o una cadena vacía. Sin embargo, si usa `UNION` con la configuración `union_default_mode` establecida en una cadena vacía, se lanzará una excepción. Los siguientes ejemplos muestran los resultados de las consultas con distintos valores de esta configuración.

```sql title="Query" theme={null}
SET union_default_mode = 'DISTINCT';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
```

```text title="Response" theme={null}
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
```

```sql title="Query" theme={null}
SET union_default_mode = 'ALL';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
```

```text title="Response" theme={null}
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
```

Las consultas que forman parte de `UNION/UNION ALL/UNION DISTINCT` pueden ejecutarse simultáneamente y sus resultados pueden mezclarse.

**Ver también**

* Configuración [insert\_null\_as\_default](/es/reference/settings/session-settings#insert_null_as_default).
* Configuración [union\_default\_mode](/es/reference/settings/session-settings#union_default_mode).
