As funções abaixo executam operações lógicas em argumentos de tipos numéricos arbitrários.
Elas retornam 0 ou 1 como UInt8 ou, em alguns casos, NULL.
Zero como argumento é considerado false, e valores diferentes de zero são considerados true.
and
Introduzido em: v1.1.0
Calcula a conjunção lógica de dois ou mais valores.
A configuração short_circuit_function_evaluation controla se a avaliação de curto-circuito é utilizada.
Se estiver habilitada, val_i será avaliado somente se (val_1 AND val_2 AND ... AND val_{i-1}) for true.
Por exemplo, com a avaliação de curto-circuito, nenhuma exceção de divisão por zero é lançada ao executar a consulta SELECT and(number = 2, intDiv(1, number)) FROM numbers(5).
Zero como argumento é considerado false; valores diferentes de zero são considerados true.
Sintaxe
and(val1, val2[, ...])Argumentos
val1, val2[, ...]— Lista de pelo menos dois valores.Nullable((U)Int*)ouNullable(Float*)
Valor retornado
Retorna:
0, se pelo menos um argumento resultar emfalseNULL, se nenhum argumento resultar emfalsee pelo menos um argumento forNULL1, caso contrárioNullable(UInt8)
Exemplos
Uso básico
SELECT and(0, 1, -2);0Com NULL
SELECT and(NULL, 1, 10, -2);\Nnot
Introduzido em: v1.1.0
Calcula a negação lógica de um valor.
Zero como argumento é considerado false; valores diferentes de zero são considerados true.
Sintaxe
not(val)Argumentos
Valor retornado
Retorna:
1, sevalresultar emfalse0, sevalresultar emtrueNULL, sevalforNULL.Nullable(UInt8)
Exemplos
Uso básico
SELECT NOT(1);0or
Introduzido em: v1.1.0
Calcula a disjunção lógica de dois ou mais valores.
A configuração short_circuit_function_evaluation determina se a avaliação de curto-circuito será usada.
Se estiver habilitada, val_i será avaliado apenas se ((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1})) for true.
Por exemplo, com a avaliação de curto-circuito, nenhuma exceção de divisão por zero é lançada ao executar a consulta SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5).
Zero como argumento é considerado false, e valores diferentes de zero são considerados true.
Sintaxe
or(val1, val2[, ...])Argumentos
val1, val2[, ...]— Lista de pelo menos dois valores.Nullable((U)Int*)ouNullable(Float*)
Valor retornado
Retorna:
1, se pelo menos um argumento resultar emtrue0, se todos os argumentos resultarem emfalseNULL, se todos os argumentos resultarem emfalsee pelo menos um argumento forNULLNullable(UInt8)
Exemplos
Uso básico
SELECT or(1, 0, 0, 2, NULL);1Com NULL
SELECT or(0, NULL);\Nxor
Introduzido em: v1.1.0
Calcula a disjunção exclusiva lógica de dois ou mais valores.
Para mais de dois valores de entrada, a função primeiro aplica xor aos dois primeiros valores e, em seguida, aplica xor ao resultado com o terceiro valor, e assim por diante.
Zero como argumento é considerado false; valores diferentes de zero são considerados true.
Sintaxe
xor(val1, val2[, ...])Argumentos
val1, val2[, ...]— Lista de pelo menos dois valores.Nullable((U)Int*)ouNullable(Float*)
Valor retornado
Retorna:
1, para dois valores: se um dos valores resultar emfalsee o outro não0, para dois valores: se ambos os valores resultarem emfalseou ambos emtrueNULL, se pelo menos um dos valores de entrada forNULL.Nullable(UInt8)
Exemplos
Uso básico
SELECT xor(0, 1, 1);0