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;
Copy
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