W PostgreSQL funkcja div()
funkcja zwraca iloraz całkowity pierwszego argumentu podzielony przez drugi argument.
Składnia
Oficjalna składnia wygląda następująco:
div(y numeric, x numeric)
Przykład
Oto przykład tego, jak to działa.
SELECT div(12, 3);
Wynik:
4
W tym przypadku podzieliłem 12 przez 3, a wynik to 4.
Więcej dywizji
Oto kilka innych dywizji pod tym samym numerem.
SELECT
div(12, 1),
div(12, 2),
div(12, 3),
div(12, 4);
Wynik:
div | div | div | div -----+-----+-----+----- 12 | 6 | 4 | 3
Wyniki ułamkowe
Ta funkcja zwraca iloraz całkowity, więc wszelkie kwoty ułamkowe są pomijane w wyniku.
SELECT div(12, 5);
Wynik:
2
12 podzielone 5 to w rzeczywistości 2,4, ale ta funkcja nie zwraca części ułamkowej, więc otrzymujemy 2.
Wygląda na to, że nie dokonano również żadnych zaokrągleń. Na przykład 9 podzielone przez 5 to 1,8, ale div()
zwraca 1 (nie zaokrągla do 2).
SELECT div(9, 5);
Wynik:
1
Więc zachowuje się bardziej jak zastosowanie trunc()
(a może nawet floor()
) do wyniku, a nie round()
lub ceiling()
.
Podział przez zero
Jeśli spróbujesz podzielić liczbę przez zero, otrzymasz błąd.
SELECT div(12, 0);
Wynik:
ERROR: division by zero
Ale jeśli podzielisz zero przez inną liczbę, to po prostu otrzymasz zero.
SELECT div(0, 12);
Wynik:
0