DIV0 und DIV0NULL: Änderung bei Ergebnissen, die die Dezimalstellenzahl der Ausgabe überschreiten¶
Achtung
Diese Verhaltensänderung ist in Bundle 2023_08 enthalten.
Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.
Das Verhalten der Funktionen DIV0 und DIV0NULL bei einem Ergebnis der Divisionsoperation, bei dem die Dezimalstellenzahl der Ausgabe überschritten wird:
- Vor der Änderung:
DIV0 und DIV0NULL schneiden die Ausgabe ab.
Dies ist nicht konsistent mit den Ergebnissen bei Verwendung des Divisionsoperators (
/
).- Nach der Änderung:
In der Ausgabe von DIV0 und DIV0NULL werden halbe Werte weg von Null gerundet.
Dies ist konsistent mit den Ergebnissen bei Verwendung des Divisionsoperators (
/
).
Angenommen, Sie dividieren 5 durch 9:
SELECT DIV0(5, 9), DIV0NULL(5, 9), 5/9;
- Vor der Änderung:
DIV0 und DIV0NULL kürzen das Ergebnis auf 0,555555 ab, während der Divisionsoperator das Ergebnis auf 0,555556 aufrundet.
+------------+----------------+----------+ | DIV0(5, 9) | DIV0NULL(5, 9) | 5/9 | |------------+----------------+----------| | 0.555555 | 0.555555 | 0.555556 | +------------+----------------+----------+
- Nach der Änderung:
DIV0, DIV0NULL und der Divisionsoperator runden das Ergebnis auf 0,555556 auf.
+------------+----------------+----------+ | DIV0(5, 9) | DIV0NULL(5, 9) | 5/9 | |------------+----------------+----------| | 0.555556 | 0.555556 | 0.555556 | +------------+----------------+----------+
Darüber hinaus führt die Übergabe von mehr als zwei Argumenten an die Funktionen DIV0 und DIV0NULL zu einer Ausnahme.
- Vor der Änderung:
Obwohl die Funktionen DIV0 und DIV0NULL nur zwei Argumente unterstützen, können Sie weitere Argumente übergeben.
Die Funktionen ignorieren die zusätzlichen Argumente.
- Nach der Änderung:
Die Übergabe von mehr als zwei Argumenten an die Funktionen DIV0 und DIV0NULL führt zu der folgenden Ausnahme:
000939 (22023): SQL compilation error: ... too many arguments for function [DIV0] expected 2, got 3
Ref.: 1400