MOD

MOD 関数は、最初の引数を 2 番目の引数で割って、その剰余を戻します。

構文図を読む構文図をスキップする
>>-MOD--(--expression-1--,--expression-2--)--------------------><

剰余の算出には、次の式が使用されます。

  MOD(x,y) = x - (x/y) * y

x/y は、除算の結果を切り捨てた整数です。 結果が負の値になるのは、最初の引数が負の場合だけです。

expression-1
任意の組み込み数値、文字ストリング、 またはグラフィック・ストリングのデータ・タイプの値を戻す式。 ストリング引数は、関数を評価する前に倍精度の浮動小数点にキャストされます。 ストリングを倍精度の浮動小数点に変換する方法については、DOUBLE_PRECISION または DOUBLEを参照してください。
expression-2
任意の組み込み数値、文字ストリング、 またはグラフィック・ストリングのデータ・タイプの値を戻す式。 ストリング引数は、関数を評価する前に倍精度の浮動小数点にキャストされます。 ストリングを倍精度の浮動小数点に変換する方法については、DOUBLE_PRECISION または DOUBLEを参照してください。 いずれかの引数が 10 進浮動小数点である場合を除いて、expression-2 はゼロであってはなりません。

引数が NULL になる可能性がある場合は、結果も NULL になる可能性があります。引数が NULL の場合は、結果は NULL 値になります。

結果の属性は、以下のように決められます。

  • 両方の引数が位取りがゼロの長整数または短整数の場合、結果のデータ・タイプは長整数になります。
  • 両方の引数が位取りがゼロの整数であり、少なくとも一方の引数が 64 ビット整数の場合、結果のデータ・タイプは 64 ビット整数になります。
  • 一方の引数が位取りがゼロの整数で、他方が 10 進数である場合、結果は、10 進数の引数と同じ精度と位取りの 10 進数になります。
  • 両方の引数が 10 進数または位取りを伴う整数の場合、結果は 10 進数になります。 結果の精度は MIN(p-s,p'-s') + MAX(s,s') で、結果の位取りは MAX(s,s') になります。ここで、記号 p と s は第 1 オペランドの精度と位取りを表し、p' と s' は第 2 オペランドの精度と位取りを表します。
  • いずれかの引数が浮動小数点数で、もう一方のオペランドが 10 進浮動小数点数ではない場合、結果のデータ・タイプは倍精度浮動小数点数になります。

    演算は浮動小数点数で実行されます。オペランドは、必要であれば、まずはじめに倍精度浮動小数点数に変換されます。例えば、浮動小数点数と整数または 10 進数のいずれかが関係する演算は、整数または 10 進数を一時的に倍精度浮動小数点数に変換したそのコピーを使って行われます。浮動小数点数演算の結果は、浮動小数点数の値の範囲内になければなりません。

  • いずれかの引数が 10 進浮動小数点の場合、結果のデータ・タイプは DECFLOAT(34) となります。引数が特殊 10 進浮動小数点値の場合は、算術演算の一般的な規則が適用されます。 詳しくは、DECFLOAT の一般的な算術演算規則を参照してください。

いずれかの引数が 10 進浮動小数点であり、2 番目の オペランドの評価が 0 になる場合、結果は NaN であり、 無効演算を示す警告 (SQLSTATE 0168D) が発行されます。1 MOD(1, -Infinity) は値 1 を戻します。

  • ホスト変数 M1 は値が 5 の整数のホスト変数であり、ホスト変数 M2 は値が 2 の整数のホスト変数であると想定します。
      SELECT MOD(:M1,:M2)
        FROM SYSIBM.SYSDUMMY1
    値として 1 が戻されます。
  • ホスト変数 M1 は値が 5 の整数のホスト変数であり、ホスト変数 M2 は 値が 2.20 の DECIMAL(3,2) ホスト変数であると想定します。
      SELECT MOD(:M1,:M2)
        FROM SYSIBM.SYSDUMMY1
    値として 0.60 が戻されます。
  • ホスト変数 M1 は値が 5.50 の DECIMAL(4.2) のホスト変数であり、ホスト変数 M2 は値が 2.0 の DECIMAL(4.1) のホスト変数であると想定しま す。
      SELECT MOD(:M1,:M2)
        FROM SYSIBM.SYSDUMMY1
    値として 1.50 が戻されます。
1 SQL_DECFLOAT_WARNINGS 照会オプションに *YES が 指定されている場合、NaN が戻され、警告が出されます。それ以外の場合、ゼロ除算警告 またはエラーが戻されます。