Oracle REMAINDER() 函数使用指南

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

Oracle REMAINDER() 函数类似于 MOD, 只是它在其公式中使用 ROUND,而 MOD 使用 FLOOR

Oracle REMAINDER() 语法

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

REMAINDER(y, x)

参数

num

必需的。

y

必需的。 被除数。

x

必需的。 除数。

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

返回值

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

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

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

Oracle REMAINDER() 示例

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

基本用法

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

输出:

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

REMAINDER() vs MOD

REMAINDER()MOD 不同之处在于, REMAINDER() 在其公式中使用 ROUND,而 MOD 使用 FLOOR

SELECT
    REMAINDER(14, 3),
    MOD(14, 3)
FROM dual;

输出:

   REMAINDER(14,3)    MOD(14,3)
__________________ ____________
                -1            2

下面的语句可以解释这一切:

SELECT
    14 - 3 * ROUND(14/3) "REMAINDER",
    14 - 3 * FLOOR(14/3) "MOD"
FROM dual;

输出:

   REMAINDER    MOD
____________ ______
          -1      2

这里, REMAINDER()MOD 的计算方法如下:

  • REMAINDER(y, x) 等于 y - x * ROUND(y/x)
  • MOD(y, x) 等于 y - x * FLOOR(y/x)

NULL 参数

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

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

输出:

   REMAINDER(1,NULL)    REMAINDER(NULL,1)    REMAINDER(NULL,NULL)
____________________ ____________________ _______________________
                NULL                 NULL                    NULL

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

结论

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