MOD スカラー関数
最初の引数を 2 番目の引数で割った剰余を戻します。
スキーマは SYSIBM です。(この関数の SYSFUN バージョンは引き続き使用可能です。)
- expression1
- 組み込み数値データ・タイプの値を戻す式。
- expression2
- 組み込み数値データ・タイプの値を戻す式。 この式は、関数引数の少なくとも 1 つが浮動小数点である場合にのみ、ゼロにすることができます。
MOD(x,y) = x-(x/y)*yここで x/y は除算の結果を整数に切り捨てた値です。
結果は、最初の引数が負である場合にのみ負になります。
引数が NULL になる可能性があるか、またはいずれの引数も 10 進浮動小数点数ではなく、dft_sqlmathwarn データベース構成パラメーターが YES に設定されている場合には、
結果は NULL になる可能性があります。
いずれかの引数が NULL の場合、結果は NULL 値になります。
結果のデータ・タイプは引数のデータ・タイプに応じて変わります。
- 両方の引数が短精度整数の場合は短精度整数。
- 一方の引数が長精度整数であり、他方の引数が短精度整数または長精度整数である場合は、長精度整数。
- 両方の引数が整数であり、少なくとも一方の引数が 64 ビット整数である場合は、64 ビット整数。
- 一方の引数が整数で、他方の引数が 10 進数である場合は 10 進数。結果は、10 進数の引数と同じ精度になります。
- 両方の引数が 10 進数の場合は 10 進数。結果の精度は、
MIN (p-s,p'-s')+(MAX(s,s')であり、位取りは(MAX(s,s')です。 ここで、pとsは最初の引数の精度と位取りを表し、p'とs'は 2 番目の引数の精度と位取りを表します。 - 1 つの引数が浮動小数点数で、もう 1 つが DECFLOAT でない場合は、倍精度浮動小数点。MOD 関数を実行する前に、引数が倍精度浮動小数点数に変換されます。例えば、一方の引数が浮動小数点数であり、他方の引数が整数または 10 進数の場合、 倍精度浮動小数点に変換された整数または 10 進数の一時コピーを使用して、関数が実行されます。 結果は浮動小数点数の範囲になければなりません。
- 両方の引数が浮動小数点数である場合は倍精度浮動小数点。結果は浮動小数点数の範囲になければなりません。
- 一方の引数が 10 進浮動小数点の場合は DECFLOAT(34) になります。
expression2 がゼロに評価される場合、結果は数値 (NaN) ではなく、関連する SQLSTATE を持つ無効な操作の警告が出されます。
一方の引数が特殊 10 進浮動小数点値である場合、10 進浮動小数点の一般的な算術演算規則が適用されます。
- 引数が無限大を含む場合は結果。
MOD(x, +/-INFINITY)は値xを戻します。MOD(+/-INFINITY, +/-INFINITY)は NaN、および関連する SQLSTATE を持つ無効な操作の警告を返します。MOD(+/-INFINITY, x)は NaN、および関連する SQLSTATE を持つ無効な操作の警告を返します。
例
- 例 1: ホスト変数 M1 が値 5 を持つ INTEGER で、ホスト変数 M2 が値 2 を持つ INTEGER であるとします。
結果は INTEGER のデータ・タイプを持つ 1 です。SELECT MOD(:M1, :M2) FROM SYSIBM.SYSDUMMY1 - 例 2: ホスト変数 M1 が値 5 を持つ INTEGER で、ホスト変数 M2 が値 2.20 を持つ DECIMAL(3,2) であるとします。
結果は DECIMAL(3,2) のデータ・タイプを持つ 0.60 です。SELECT MOD(:M1, :M2) FROM SYSIBM.SYSDUMMY1 - 例 3: ホスト変数 M1 が値 5.5 を持つ DECIMAL(4,2) で、ホスト変数 M2 が値 2.0 を持つ DECIMAL(4,1) であるとします。
結果は DECIMAL(4,2) のデータ・タイプを持つ 1.50 です。SELECT MOD(:M1, :M2) FROM SYSIBM.SYSDUMMY1
