Categorias:

Funções de expressão condicional

BOOLAND

Calcula o AND booleano de duas expressões numéricas. De acordo com a semântica booleana:

  • Valores diferentes de zero, incluindo números negativos, são considerados como True.

  • Os valores zero são considerados como False.

Como resultado, a função retorna:

  • True se ambas as expressões forem diferentes de zero.

  • False se ambas as expressões forem zero ou se uma expressão for zero e a outra expressão for diferente de zero ou NULL.

  • NULL se ambas as expressões forem NULL ou uma expressão for NULL e a outra expressão for diferente de zero.

Consulte também:

BOOLNOT , BOOLOR , BOOLXOR

Sintaxe

BOOLAND( <expr1> , <expr2> )
Copy

Argumentos

expr1

Uma expressão numérica.

expr2

Uma expressão numérica.

Retornos

Esta função retorna um valor do tipo BOOLEAN ou NULL.

Notas de uso

Esta função arredonda números de ponto flutuante. Portanto, ele pode retornar resultados inesperados quando arredonda os números de ponto flutuante diferentes de zero para zero.

Para obter exemplos desse comportamento e soluções alternativas, consulte Computação booleana AND Resultados para números de ponto flutuante.

Exemplos

Os exemplos a seguir usam a função BOOLAND.

Computação booleana AND Resultados para números inteiros e NULL Valores

A consulta a seguir calcula booleano AND Resultados para números inteiros e NULL Valores:

SELECT BOOLAND(1, -2),
       BOOLAND(0, 0),
       BOOLAND(0, NULL),
       BOOLAND(NULL, 3),
       BOOLAND(NULL, NULL);
Copy
+----------------+---------------+------------------+------------------+---------------------+
| BOOLAND(1, -2) | BOOLAND(0, 0) | BOOLAND(0, NULL) | BOOLAND(NULL, 3) | BOOLAND(NULL, NULL) |
|----------------+---------------+------------------+------------------+---------------------|
| True           | False         | False            | NULL             | NULL                |
+----------------+---------------+------------------+------------------+---------------------+

Computação booleana AND Resultados para números de ponto flutuante

Os exemplos a seguir mostram como a função pode retornar resultados inesperados para números de ponto flutuante arredondados para zero.

Para as consultas a seguir, um resultado de True podem ser esperados para as seguintes chamadas de função, mas eles retornam False porque a função arredonda os valores de ponto flutuante diferentes de zero para zero:

SELECT BOOLAND(2, 0.3);
Copy
+-----------------+
| BOOLAND(2, 0.3) |
|-----------------|
| False           |
+-----------------+
SELECT BOOLAND(-0.4, 5);
Copy
+------------------+
| BOOLAND(-0.4, 5) |
|------------------|
| False            |
+------------------+

Se necessário, você pode contornar esse comportamento de arredondamento para valores de ponto flutuante usando a AND operador lógico em vez da função. Por exemplo, a consulta a seguir retorna True:

SELECT 2 AND 0.3;
Copy
+-----------+
| 2 AND 0.3 |
|-----------|
| True      |
+-----------+