Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

MOD (SQL)

ある数を別の数で割った剰余を返す、スカラ数値関数です。

Synopsis

MOD(dividend,divisor)

{fn MOD(dividend,divisor)}

引数

引数 説明
dividend 除算の分子 (被除数) である数字。
divisor 除算の分母 (除数) である数字。

dividend がデータ型 DOUBLE でない限り、MOD は NUMERIC データ型を返します。dividend が DOUBLE の場合、MOD は DOUBLE を返します。

概要

MOD は、被除数を除数で割った余り (剰余) を返します。

MOD は、標準スカラ関数または { } 括弧構文による ODBC スカラ関数として指定できます。

  • dividenddivisor が正である場合、正の剰余またはゼロを返します。

  • dividenddivisor の両方が負である場合、負の剰余またはゼロを返します。

  • dividend または divisor が NULL である場合、NULL を返します。

  • divisor が 0 である場合、<DIVIDE> エラーの %msg を含む SQLCODE -400 を生成します。

  • divisordividend より大きい場合、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 の演算子優先順位を適用する] 構成設定の影響を受けません。

以下の例は、MOD で返された余りを示しています。

SELECT MOD(5,3) AS Remainder

これは、2 を返します。

SELECT MOD(5.3,.5) AS Remainder

これは、.3 を返します。

関連項目

CEILINGFLOORROUNDTRUNCATE

FeedbackOpens in a new tab