Kategorien:

Funktionen für bedingte Ausdrücke

BOOLNOT

Berechnet das boolesche NOT eines einzelnen numerischen Ausdrucks. In Übereinstimmung mit der booleschen Semantik:

  • Nicht-Null-Werte (einschließlich negativer Zahlen) werden als „True“ betrachtet.

  • Nullwerte werden als „False“ betrachtet.

Als Ergebnis gibt die Funktion Folgendes zurück:

  • True, wenn der Ausdruck null (zero) ist.

  • False, wenn der Ausdruck nicht null (zero) ist.

  • NULL, wenn der Ausdruck NULL ist.

Siehe auch:

BOOLAND , BOOLOR , BOOLXOR

Syntax

BOOLNOT( <expr> )
Copy

Argumente

expr

Ein numerischer Ausdruck.

Rückgabewerte

Diese Funktion gibt einen Wert vom Typ BOOLEAN oder NULL zurück.

Nutzungshinweise

Diese Funktion rundet Fließkommazahlen. Daher kann es bei Gleitkommazahlen, die auf Null gerundet werden, zu unerwarteten Ergebnissen.

Beispiele für dieses Verhalten und Problemumgehungen finden Sie unter Boolesche NOT-Ergebnisse für Gleitkommazahlen berechnen.

Beispiele

Die folgenden Beispiele verwenden die Funktion BOOLNOT.

Boolesche NOT-Ergebnisse für ganze Zahlen und NULL-Werte berechnen

Die folgende Abfrage berechnet boolesche NOT-Ergebnisse für ganze Zahlen und NULL-Werte:

SELECT BOOLNOT(0),
       BOOLNOT(10),
       BOOLNOT(NULL);
Copy
+------------+-------------+---------------+
| BOOLNOT(0) | BOOLNOT(10) | BOOLNOT(NULL) |
|------------+-------------+---------------|
| True       | False       | NULL          |
+------------+-------------+---------------+

Boolesche NOT-Ergebnisse für Gleitkommazahlen berechnen

Die folgenden Beispiele zeigen, wie die Funktion bei Gleitkommazahlen, die auf Null gerundet werden, unerwartete Ergebnisse liefern kann.

Für die folgenden Abfragen wird möglicherweise das Ergebnis False Für die folgenden Funktionsaufrufe erwartet, aber sie geben True zurück, da die Funktion Nicht-Null-Gleitkommawerte auf Null rundet:

SELECT BOOLNOT(0.3);
Copy
+--------------+
| BOOLNOT(0.3) |
|--------------|
| True         |
+--------------+
SELECT BOOLNOT(-0.4);
Copy
+---------------+
| BOOLNOT(-0.4) |
|---------------|
| True          |
+---------------+

Falls erforderlich, können Sie dieses Rundungsverhalten für positive Gleitkommawerte umgehen, indem Sie die Funktion CEIL verwenden. Die folgende Abfrage gibt zum Beispiel False zurück:

SELECT BOOLNOT(CEIL(0.3));
Copy
+--------------------+
| BOOLNOT(CEIL(0.3)) |
|--------------------|
| False              |
+--------------------+

Bei negativen Gleitkommawerten können Sie dieses Rundungsverhalten umgehen, indem Sie den:NOT logischen Operator anstelle der Funktion verwenden. Die folgende Abfrage gibt zum Beispiel False zurück:

SELECT NOT -0.4;
Copy
+----------+
| NOT -0.4 |
|----------|
| False    |
+----------+