Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime
Mehrere spezielle Gleitkommawerte werden unabhängig von Groß/Kleinschreibung behandelt:
- Inf, +Inf, Infinity, +Infinity: positive Unendlichkeit
- -Inf, -Infinity: negative Unendlichkeit
- NaN: Not a Number (keine Zahl)
Semantik für positive und negative Unendlichkeit
Positive und negative Unendlichkeit weisen die folgende Semantik auf:
- Positive Unendlichkeit multipliziert mit einem beliebigen positiven Wert gibt positive Unendlichkeit zurück.
- Negative Unendlichkeit multipliziert mit einem beliebigen positiven Wert gibt negative Unendlichkeit zurück.
- Positive Unendlichkeit multipliziert mit einem beliebigen negativen Wert gibt negative Unendlichkeit zurück.
- Negative Unendlichkeit multipliziert mit einem beliebigen negativen Wert gibt positive Unendlichkeit zurück.
- Positive oder negative Unendlichkeit multipliziert mit 0 gibt NaN zurück.
- Positive oder negative Unendlichkeit ist gleich sich selbst.
- In Aggregationen werden alle positiven Unendlichkeitswerte gruppiert. In ähnlicher Weise werden alle negativen Unendlichkeitswerte gruppiert.
- Positive und negative Unendlichkeit werden in Joinschlüsseln als normale behandelt.
- Positive Unendlichkeit wird niedriger als NaN und höher als alle anderen Werte eingeordnet.
- Negative Unendlichkeit wird niedriger als alle anderen Werte eingeordnet.
NaN-Semantik
Beim Umgang mit den Typen float oder double, die nicht genau der standardmäßigen Gleitkommasemantik entsprechen, hat NaN die folgende Semantik:
- NaN = NaN gibt TRUE zurück.
- In Aggregationen werden alle NaN-Werte gruppiert.
- NaN wird in Joinschlüsseln als normaler Wert behandelt.
- NaN-Werte stehen in aufsteigender Reihenfolge an letzter Stelle und sind größer als jeder andere numerische Wert.
Beispiele
> SELECT double('infinity');
Infinity
> SELECT float('-inf');
-Infinity
> SELECT float('NaN');
NaN
> SELECT double('infinity') * 0;
NaN
> SELECT double('-infinity') * (-1234567);
Infinity
> SELECT double('infinity') < double('NaN');
true
> SELECT double('NaN') = double('NaN');
true
> SELECT double('inf') = double('infinity');
true
> SELECT COUNT(*), c2
FROM VALUES (1, double('infinity')),
(2, double('infinity')),
(3, double('inf')),
(4, double('-inf')),
(5, double('NaN')),
(6, double('NaN')),
(7, double('-infinity'))
AS test(c1, c2)
GROUP BY c2;
2 NaN
2 -Infinity
3 Infinity