Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Was ist der Unterschied zwischen MOD und REMAINDER in Oracle?

Die Dokumentation ist ziemlich klar auf den Unterschied:

Mit anderen Worten, wenn die Argumente positive ganze Zahlen sind, gibt die mod-Funktion eine positive Zahl zwischen 0 und dem zweiten Argument zurück. Die Restfunktion gibt eine Zahl zurück, deren Absolutwert kleiner als das zweite Argument geteilt durch 2 ist.

Die Unterschiede können bei negativen Zahlen auffälliger sein. Ein Beispiel für einen Unterschied ist:

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

Der erste ergibt -3 und die zweite 1 .

BEARBEITEN:

Was passiert hier? Wie oft geht 4 in -15. Eine Methode ist "-4" mal mit einem Rest von 1. Das heißt:-15 =4*(-4) + 1. Die andere ist "-3" mal:-15 =4*(-3) - 3.

Die Differenz beträgt -15/4, ausgedrückt als ganze Zahl. Wenn Sie den Boden verwenden, erhalten Sie -4 . Mit round erhalten Sie -3 .