Bazy danych

Witryna zawiera podstawowe informacje odnośnie funkcji w bazach danych takich jak MySQL i Oracle oraz podstawowe informacje dotyczące zapytań.

piątek, 17 lutego 2012

ORACLE - REMAINDER()

REMAINDER()


REMAINDER(wartosc_dzielona,dzielnik)

Zwraca resztę z dzielenie "wartosc_dzielona" przez "dzielnik".

Różnica przy użyciu REMAINDER, zamiast funkcji MOD jest taka, iż REMAINDER korzysta z ROUND(), zaś MOD() z FLOOR() przy ustalaniu wyniku.
(W celu prześledzenia działania funkcji MOD(), ROUND(), FLOOR() zapraszam do przeczytania artykułów opisujących funkcje)



Najlepszym przykładem różnicy działania funkcji będzie opisanie krok po kroku.


SELECT 2/3 FROM dual;

2/3
----------------------
0,6666666666666666666666666666666666666667


Dzielenie liczby 2 przez liczbę 3 daje wynik 0.666

Dla FLOOR(0.666) wynikiem będzie 0.
Dla ROUND(0.666) wynikiem będzie 1.

Jako, że funkcja MOD() korzysta z FLOOR (wynik 0), będziemy mieli 0 i 2 reszty.
Funkcja REMAINDER() korzsyta z ROUND (wynik 1), będziemy mieli 1 i -1 reszty.
1x3 = 3
3+(-1) = 2


SELECT REMAINDER(2,3) FROM dual;

REMAINDER(2,3)
----------------------
-1



SELECT MOD(2,3) FROM dual;

MOD(2,3)
----------------------
2

Brak komentarzy:

Prześlij komentarz