注:IRIS可用,非IRIS版本不可用。
标量数值函数,返回一个数除以另一个数的模数(余数)。
MOD(dividend,divisor)
{fn MOD(dividend,divisor)}
dividend
- 数字,它是除法的分子(除数)。divisor
- 数字,它是除法的分母(除数)。MOD
返回 NUMERIC
数据类型,除非被除数是数据类型 DOUBLE
。如果dividend
为 DOUBLE
,则 MOD
返回 DOUBLE
。
MOD
返回除数除数的数学余数(模数)。
MOD
可以指定为标准标量函数或带有大括号语法的 ODBC
标量函数。
NULL
,则返回 NULL
。0
,它将生成带有 %msg
<DIVIDE>
错误的 SQLCODE -400
。MOD
(任一语法形式)报告的精度与算术表达式除数/除数的精度报告相同。
具有单个负操作数的 MOD
函数的行为取决于 Apply ANSI Operator Precedence
配置设置:
Apply ANSI Operator Precedence
,则带有负操作数的 MOD
的行为与 #
模运算符相同。两者都返回短计数(达到下一个倍数所需的数量),而不是模数。例如,12#7
返回模数 5
; –12#7
返回短计数 2
。如果被除数为负,短计数为正值或零。如果除数为负,则短计数为负值或零。Apply ANSI Operator Precedence
(IRIS 2019.1 及后续版本的默认设置),带有负操作数的MOD
的行为是始终返回模数。如果被除数为负,则返回负模数或零。如果除数为负,则返回正模数或零。# modulo operator
的行为不受应用 ANSI
运算符优先级配置设置的影响。
以下示例显示了 MOD
返回的余数。
SELECT MOD(5,3) AS Remainder
2
SELECT MOD(5.3,.5) AS Remainder
0.3