Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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 o, en algunos casos, NULL.

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

and

Introducido en: v1.1.0

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

La configuración 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 de división por 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

and(val1, val2[, ...])

Argumentos

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)

Ejemplos

Uso básico

SELECT and(0, 1, -2);
0

Con NULL

SELECT and(NULL, 1, 10, -2);
\N

not

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

not(val)

Argumentos

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)

Ejemplos

Uso básico

SELECT NOT(1);
0

or

Introducido en: v1.1.0

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

La configuración 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

or(val1, val2[, ...])

Argumentos

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)

Ejemplos

Uso básico

SELECT or(1, 0, 0, 2, NULL);
1

Con NULL

SELECT or(0, NULL);
\N

xor

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

xor(val1, val2[, ...])

Argumentos

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)

Ejemplos

Uso básico

SELECT xor(0, 1, 1);
0
Navigation