REMAINDER 函数返回 x 除以 y 的余数。

注意

与 MOD 函数的区别为:

在用 REMAINDER (x,y)MOD (x,y) 函数在进行运算时,都用了一个公式 result=x-y*(x/y),区别在于计算 x/y 时的处理方式不同。在 REMAINDER (x,y) 函数中,采用 ROUND(x/y),而在 MOD (x,y) 函数中采用 FLOOR(x/y)。在REMAINDER 函数中,当 ROUND(x/y) 的参数 x/y 的值的小数部分恰好为 0.5 时,如果 x/y 的值的整数部分为偶数,不向前一位进位,当 x/y 的值的整数部分为奇数,向前一位进位。例如,ROUND(1.5)\=2、ROUND(2.5)\=2、ROUND(3.5)\=4、ROUND(4.5)\=4。

语法

  1. REMAINDER (x, y)

参数

参数说明

x,y

xy 为数值型(NUMBERFLOATBINARY_FLOATBINARY_DOUBLE)表达式。

返回类型

返回类型与数值优先级高的参数的数据类型相同。

示例

此示例显示了使用 MOD 以及 REMAINDER 函数计算 1.5/1 的余数的结果,请注意两个函数的区别。

执行以下语句:

  1. SELECT MOD(1.5,1), REMAINDER(1.5,1) FROM DUAL;

查询结果如下:

  1. +------------+------------------+
  2. | MOD(1.5,1) | REMAINDER(1.5,1) |
  3. +------------+------------------+
  4. | .5 | -.5 |
  5. +------------+------------------+