DIV0 および DIV0NULL: 出力スケールを超える結果への変更

注意

この動作変更は2023_08バンドルにあります。

バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。

DIV0 および DIV0NULL 関数の場合、除算結果が出力目盛を超えたとき:

変更前:

DIV0 および DIV0NULL は出力を切り捨てます。

これは除算演算子 (/) を使った結果と矛盾します。

変更後:

DIV0 および DIV0NULL は 出力の半数を切り上げます

これは除算演算子 (/) を使った結果と一致します。

例えば、5を9で割るとします。

SELECT DIV0(5, 9), DIV0NULL(5, 9), 5/9;
Copy
変更前:

DIV0 および DIV0NULL は結果を0.555555に切り捨て、除算演算子は0.555556に切り上げます。

+------------+----------------+----------+
| DIV0(5, 9) | DIV0NULL(5, 9) |      5/9 |
|------------+----------------+----------|
|   0.555555 |       0.555555 | 0.555556 |
+------------+----------------+----------+
変更後:

DIV0 、 DIV0NULL 、および除算演算子は、結果を0.555556に切り上げます。

+------------+----------------+----------+
| DIV0(5, 9) | DIV0NULL(5, 9) |      5/9 |
|------------+----------------+----------|
|   0.555556 |       0.555556 | 0.555556 |
+------------+----------------+----------+

また、 DIV0 関数と DIV0NULL 関数に2つを超える引数を渡すと例外が発生します。

変更前:

DIV0 と DIV0NULL 関数は2つの引数しかサポートしていませんが、追加の引数を渡すことができます。

関数は追加の引数を無視します。

変更後:

DIV0 と DIV0NULL 関数に2つを超える引数を渡すと、次のような例外が発生します。

000939 (22023): SQL compilation error: ...
  too many arguments for function [DIV0] expected 2, got 3

参照: 1400