Oracle MOD() 函数使用指南

Oracle MOD() 是一个内置函数,它返回指定的两个数字做除法运算后的余数。

Oracle MOD() 语法

这里是 Oracle MOD() 函数的语法:

MOD(y, x)

参数

y

必需的。 被除数。

x

必需的。 除数。

yx 可以是何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型。

返回值

Oracle MOD(y, x) 函数返回 y 除以 x 的余数,即 y/x 的余数。

如果 x 是 0,MOD(y, x) 函数返回 y

如果任意一个参数为 NULLMOD() 将返回 NULL

Oracle MOD() 示例

这里有几个展示了 Oracle MOD() 函数用法的示例。

基本用法

SELECT
    MOD(3, 2),
    MOD(3.3, 1.2)
FROM dual;

输出:

   MOD(3,2)    MOD(3.3,1.2)
___________ _______________
          1             0.9

负数

当两个参数的乘积为负数时, Oracle 计算求模的算法和经典算法不同。下面的示例说明了这一切:

SELECT
    11 "y",
    4 "x",
    MOD(11, 4) "MOD(y,x)",
    11 - 4 * FLOOR(11/4) "Classical"
FROM DUAL
UNION ALL
SELECT
    11,
    -4,
    MOD(11, -4),
    11 - -4 * FLOOR(11/-4)
FROM DUAL
UNION ALL
SELECT
    -11,
    4,
    MOD(-11, 4),
    -11 - 4 * FLOOR(-11/4)
FROM DUAL
UNION ALL
SELECT
    -11,
    -4,
    MOD(-11, -4),
    -11 - -4 * FLOOR(-11/-4)
FROM DUAL;

输出:

     y     x    MOD(y,x)    Classical
______ _____ ___________ ____________
    11     4           3            3
    11    -4           3           -1
   -11     4          -3            1
   -11    -4          -3           -3

NULL 参数

如果任意一个参数为 NULLMOD() 将返回 NULL

SET NULL 'NULL';
SELECT
    MOD(1, NULL),
    MOD(NULL, 1),
    MOD(NULL, NULL)
FROM dual;

输出:

   MOD(1,NULL)    MOD(NULL,1)    MOD(NULL,NULL)
______________ ______________ _________________
          NULL           NULL              NULL

在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。

结论

Oracle MOD() 是一个内置函数,它返回指定的两个数字做除法运算后的余数。