sql >> Base de Datos >  >> RDS >> Oracle

¿Cuál es la diferencia entre MOD y REMAINDER en Oracle?

La documentación es bastante clara en la diferencia:

En otras palabras, cuando los argumentos son enteros positivos, la función mod devuelve un número positivo entre 0 y el segundo argumento. La función de resto devuelve un número cuyo valor absoluto es menor que el segundo argumento dividido por 2.

Las diferencias pueden ser más llamativas para los números negativos. Un ejemplo de una diferencia es:

REMAINDER(-15, 4)
MOD(-15, 4)

El primero da -3 y el segundo 1 .

EDITAR:

¿Que está sucediendo aquí? Cuantas veces cabe 4 en -15. Un método es "-4" multiplicado por 1. Es decir:-15 =4*(-4) + 1. El otro es "-3" multiplicado por:-15 =4*(-3) - 3.

La diferencia qué es -15/4 expresada como un número entero. Usando piso, obtienes -4 . Usando ronda, obtienes -3 .