DIV0 および DIV0NULL: 出力スケールを超える結果への変更¶
DIV0 および DIV0NULL 関数の場合、除算結果が出力目盛を超えたとき:
- 変更前:
DIV0 および DIV0NULL は出力を切り捨てます。
これは除算演算子 (
/
) を使った結果と矛盾します。- 変更後:
DIV0 および DIV0NULL は 出力の半数を切り上げます。
これは除算演算子 (
/
) を使った結果と一致します。
例えば、5を9で割るとします。
SELECT DIV0(5, 9), DIV0NULL(5, 9), 5/9;
- 変更前:
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