MOD (SQL)
構文
MOD(dividend,divisor)
{fn MOD(dividend,divisor)}
概要
MOD は、被除数を除数で割った余り (剰余) を返します。
MOD は、標準スカラ関数または { } 括弧構文による ODBC スカラ関数として指定できます。
-
dividend と divisor が正である場合、正の剰余またはゼロを返します。
-
dividend と divisor の両方が負である場合、負の剰余またはゼロを返します。
-
dividend または divisor が NULL である場合、NULL を返します。
-
divisor が 0 である場合、<DIVIDE> エラーの %msg を含む SQLCODE -400 を生成します。
-
divisor が dividend より大きい場合、dividend を返します。
MOD に対してレポートされる精度 (いずれかの構文形式) は、算術式 dividend/divisor の精度レポートと同じです。
ANSI 演算子の優先順位
1 つの負のオペランドが指定された MOD 関数の動作は、[ANSI の演算子優先順位を適用する] 構成設定によって異なります。
-
[ANSI の演算子優先順位を適用する] が適用されない場合、負のオペランドが指定された MOD の動作は # モジュロ演算子と同じです。どちらも、剰余ではなく、不足分 (次の倍数に達するために必要な数) を返します。例えば、12#7 は剰余の 5 を返します。–12#7 は不足分の 2 を返します。dividend が負である場合、不足分は正の値またはゼロです。divisor が負である場合、不足分は負の値またはゼロです。
-
[ANSI の演算子優先順位を適用する] が適用される場合 (InterSystems IRIS 2019.1 以降の既定)、負のオペランドが指定された MOD の動作は常に、剰余を返します。dividend が負である場合、負の剰余またはゼロを返します。divisor が負である場合、正の剰余またはゼロを返します。
# モジュロ演算子の動作は、[ANSI の演算子優先順位を適用する] 構成設定の影響を受けません。
引数
dividend
除算の分子 (被除数) である数字。
divisor
除算の分母 (除数) である数字。
dividend がデータ型 DOUBLE でない限り、MOD は NUMERIC データ型を返します。dividend が DOUBLE の場合、MOD は DOUBLE を返します。
例
以下の例は、MOD で返された余りを示しています。
SELECT MOD(5,3) AS Remainder
これは、2 を返します。
SELECT MOD(5.3,.5) AS Remainder
これは、.3 を返します。