> ## 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 las funciones lógicas

# Funciones lógicas

Las funciones que se muestran a continuación realizan operaciones lógicas sobre argumentos de tipos numéricos arbitrarios.
Devuelven `0` o `1` como [`UInt8`](/es/reference/data-types/int-uint) o, en algunos casos, `NULL`.

El valor cero como argumento se considera `false`; los valores distintos de cero se consideran `true`.

{/*AUTOGENERATED_START*/}

<div id="and">
  ## and
</div>

Introducido en: v1.1.0

Calcula la conjunción lógica de dos o más valores.

La configuración [`short_circuit_function_evaluation`](/es/reference/settings/session-settings#short_circuit_function_evaluation) controla si se usa la evaluación de cortocircuito.
Si está habilitada, `val_i` solo se evalúa si `(val_1 AND val_2 AND ... AND val_{i-1})` es `true`.

Por ejemplo, con la evaluación de cortocircuito, no se lanza ninguna excepción por división entre cero al ejecutar la consulta `SELECT and(number = 2, intDiv(1, number)) FROM numbers(5)`.
El cero como argumento se considera `false`; los valores distintos de cero se consideran `true`.

**Sintaxis**

```sql theme={null}
and(val1, val2[, ...])
```

**Argumentos**

* `val1, val2[, ...]` — Lista de al menos dos valores. [`Nullable((U)Int*)`](/es/reference/data-types/nullable) o [`Nullable(Float*)`](/es/reference/data-types/nullable)

**Valor devuelto**

Devuelve:

* `0` si al menos un argumento se evalúa como `false`
* `NULL` si ningún argumento se evalúa como `false` y al menos uno de los argumentos es `NULL`
* `1` en cualquier otro caso
  [`Nullable(UInt8)`](/es/reference/data-types/nullable)

**Ejemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT and(0, 1, -2);
```

```response title=Response theme={null}
0
```

**Con NULL**

```sql title=Query theme={null}
SELECT and(NULL, 1, 10, -2);
```

```response title=Response theme={null}
ᴺᵁᴸᴸ
```

<div id="not">
  ## not
</div>

Introducido en: v1.1.0

Calcula la negación lógica de un valor.
Un cero como argumento se considera `false`; los valores distintos de cero se consideran `true`.

**Sintaxis**

```sql theme={null}
not(val)
```

**Argumentos**

* `val` — El valor. [`(U)Int*`](/es/reference/data-types/int-uint) o [`Float*`](/es/reference/data-types/float)

**Valor devuelto**

Devuelve:

* `1`, si `val` se evalúa como `false`
* `0`, si `val` se evalúa como `true`
* `NULL`, si `val` es `NULL`.
  [`Nullable(UInt8)`](/es/reference/data-types/nullable)

**Ejemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT NOT(1);
```

```response title=Response theme={null}
0
```

<div id="or">
  ## or
</div>

Introducido en: v1.1.0

Calcula la disyunción lógica de dos o más valores.

La configuración [`short_circuit_function_evaluation`](/es/reference/settings/session-settings#short_circuit_function_evaluation) controla si se usa la evaluación de cortocircuito.
Si está habilitada, `val_i` se evalúa solo si `((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1}))` es `true`.

Por ejemplo, con la evaluación de cortocircuito, no se produce ninguna excepción de división por cero al ejecutar la consulta `SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5)`.
El cero como argumento se considera `false`; los valores distintos de cero se consideran `true`.

**Sintaxis**

```sql theme={null}
or(val1, val2[, ...])
```

**Argumentos**

* `val1, val2[, ...]` — Lista de al menos dos valores. [`Nullable((U)Int*)`](/es/reference/data-types/nullable) o [`Nullable(Float*)`](/es/reference/data-types/nullable)

**Valor devuelto**

Devuelve:

* `1`, si al menos un argumento se evalúa como `true`
* `0`, si todos los argumentos se evalúan como `false`
* `NULL`, si todos los argumentos se evalúan como `false` y al menos uno de ellos es `NULL`
  [`Nullable(UInt8)`](/es/reference/data-types/nullable)

**Ejemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT or(1, 0, 0, 2, NULL);
```

```response title=Response theme={null}
1
```

**Con NULL**

```sql title=Query theme={null}
SELECT or(0, NULL);
```

```response title=Response theme={null}
ᴺᵁᴸᴸ
```

<div id="xor">
  ## xor
</div>

Introducido en: v1.1.0

Calcula la disyunción exclusiva lógica de dos o más valores.
Cuando hay más de dos valores de entrada, la función primero aplica xor a los dos primeros valores y luego aplica xor al resultado con el tercer valor, y así sucesivamente.
El valor cero como argumento se considera `false`; los valores distintos de cero se consideran `true`.

**Sintaxis**

```sql theme={null}
xor(val1, val2[, ...])
```

**Argumentos**

* `val1, val2[, ...]` — Lista de al menos dos valores. [`Nullable((U)Int*)`](/es/reference/data-types/nullable) o [`Nullable(Float*)`](/es/reference/data-types/nullable)

**Valor devuelto**

Devuelve:

* `1`, para dos valores: si uno de los valores se evalúa como `false` y el otro no
* `0`, para dos valores: si ambos valores se evalúan como `false` o ambos como `true`
* `NULL`, si al menos uno de los valores de entrada es `NULL`.
  [`Nullable(UInt8)`](/es/reference/data-types/nullable)

**Ejemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT xor(0, 1, 1);
```

```response title=Response theme={null}
0
```
