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。
语法
REMAINDER (x, y)
参数
参数 | 说明 |
x,y | x 和 y 为数值型(NUMBER 、FLOAT 、BINARY_FLOAT 和 BINARY_DOUBLE )表达式。 |
返回类型
返回类型与数值优先级高的参数的数据类型相同。
示例
此示例显示了使用 MOD
以及 REMAINDER
函数计算 1.5/1 的余数的结果,请注意两个函数的区别。
执行以下语句:
SELECT MOD(1.5,1), REMAINDER(1.5,1) FROM DUAL;
查询结果如下:
+------------+------------------+
| MOD(1.5,1) | REMAINDER(1.5,1) |
+------------+------------------+
| 0.5 | -0.5 |
+------------+------------------+