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
val1, val2[, ...]— Lista de al menos dos valores.Nullable((U)Int*)oNullable(Float*)
Valor devuelto
Devuelve:
0si al menos un argumento se evalúa comofalseNULLsi ningún argumento se evalúa comofalsey al menos uno de los argumentos esNULL1en cualquier otro casoNullable(UInt8)
Ejemplos
Uso básico
SELECT and(0, 1, -2);0Con NULL
SELECT and(NULL, 1, 10, -2);\Nnot
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, sivalse evalúa comofalse0, sivalse evalúa comotrueNULL, sivalesNULL.Nullable(UInt8)
Ejemplos
Uso básico
SELECT NOT(1);0or
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
val1, val2[, ...]— Lista de al menos dos valores.Nullable((U)Int*)oNullable(Float*)
Valor devuelto
Devuelve:
1, si al menos un argumento se evalúa comotrue0, si todos los argumentos se evalúan comofalseNULL, si todos los argumentos se evalúan comofalsey al menos uno de ellos esNULLNullable(UInt8)
Ejemplos
Uso básico
SELECT or(1, 0, 0, 2, NULL);1Con NULL
SELECT or(0, NULL);\Nxor
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
val1, val2[, ...]— Lista de al menos dos valores.Nullable((U)Int*)oNullable(Float*)
Valor devuelto
Devuelve:
1, para dos valores: si uno de los valores se evalúa comofalsey el otro no0, para dos valores: si ambos valores se evalúan comofalseo ambos comotrueNULL, si al menos uno de los valores de entrada esNULL.Nullable(UInt8)
Ejemplos
Uso básico
SELECT xor(0, 1, 1);0