- Categorias:
BOOLNOT¶
Calcula o NOT booleano de apenas uma expressão numérica. 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:
Truese a expressão for zero.Falsese a expressão for diferente de zero.NULLse a expressão for NULL.
Sintaxe¶
BOOLNOT( <expr> )
Argumentos¶
exprUma 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 para números de ponto flutuante que arredondam para zero.
Para obter exemplos desse comportamento e soluções alternativas, consulte Computação booleana NOT Resultados para números de ponto flutuante.
Exemplos¶
Os exemplos a seguir usam a função BOOLNOT.
Computação booleana NOT Resultados para números inteiros e NULL Valores¶
A consulta a seguir calcula booleano NOT Resultados para números inteiros e NULL Valores:
SELECT BOOLNOT(0),
BOOLNOT(10),
BOOLNOT(NULL);
+------------+-------------+---------------+
| BOOLNOT(0) | BOOLNOT(10) | BOOLNOT(NULL) |
|------------+-------------+---------------|
| True | False | NULL |
+------------+-------------+---------------+
Computação booleana NOT Resultados para números de ponto flutuante¶
Os exemplos a seguir demonstram 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 False podem ser esperados para as seguintes chamadas de função, mas eles retornam True porque a função arredonda os valores de ponto flutuante diferentes de zero para zero:
SELECT BOOLNOT(0.3);
+--------------+
| BOOLNOT(0.3) |
|--------------|
| True |
+--------------+
SELECT BOOLNOT(-0.4);
+---------------+
| BOOLNOT(-0.4) |
|---------------|
| True |
+---------------+
Se necessário, você pode contornar esse comportamento de arredondamento para valores de ponto flutuante positivos usando o CEIL Função. Por exemplo, a consulta a seguir retorna False:
SELECT BOOLNOT(CEIL(0.3));
+--------------------+
| BOOLNOT(CEIL(0.3)) |
|--------------------|
| False |
+--------------------+
Para valores de ponto flutuante negativos, você pode contornar esse comportamento de arredondamento usando o seguinte:NOT operador lógico em vez da função. Por exemplo, a consulta a seguir retorna False:
SELECT NOT -0.4;
+----------+
| NOT -0.4 |
|----------|
| False |
+----------+