Oracle
 sql >> Database >  >> RDS >> Oracle

Qual è la differenza tra MOD e REMAINDER in Oracle?

La documentazione è abbastanza chiara la differenza:

In altre parole, quando gli argomenti sono interi positivi, la funzione mod restituisce un numero positivo compreso tra 0 e il secondo argomento. La funzione resto restituisce un numero il cui valore assoluto è minore del secondo argomento diviso per 2.

Le differenze possono essere più evidenti per i numeri negativi. Un esempio di differenza è:

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

Il primo dà -3 e il secondo 1 .

MODIFICA:

Cosa sta succedendo qui? Quante volte 4 va in -15. Un metodo è "-4" volte con un residuo di 1. Cioè:-15 =4*(-4) + 1. L'altro è "-3" volte:-15 =4*(-3) - 3.

La differenza è -15/4 espressa come numero intero. Usando floor, ottieni -4 . Usando round, ottieni -3 .