Trong PostgreSQL, div()
hàm trả về thương số nguyên của đối số đầu tiên chia cho đối số thứ hai.
Cú pháp
Cú pháp chính thức như sau:
div(y numeric, x numeric)
Ví dụ
Dưới đây là một ví dụ về cách nó hoạt động.
SELECT div(12, 3);
Kết quả:
4
Trong trường hợp này, tôi chia 12 cho 3 và kết quả là 4.
Nhiều bộ phận hơn
Dưới đây là một số bộ phận khác với cùng một con số.
SELECT
div(12, 1),
div(12, 2),
div(12, 3),
div(12, 4);
Kết quả:
div | div | div | div -----+-----+-----+----- 12 | 6 | 4 | 3
Kết quả phân số
Hàm này trả về thương số nguyên, vì vậy bất kỳ số lượng phân số nào sẽ bị bỏ qua khỏi kết quả.
SELECT div(12, 5);
Kết quả:
2
12 chia 5 thực tế là 2,4, nhưng hàm này không trả về phần phân số và do đó chúng ta nhận được 2.
Dường như không có bất kỳ sự làm tròn nào được thực hiện. Ví dụ:9 chia cho 5 được 1,8, nhưng div()
trả về 1 (nó không làm tròn đến 2).
SELECT div(9, 5);
Kết quả:
1
Vì vậy, nó hoạt động giống như áp dụng trunc()
(hoặc thậm chí có thể là floor()
) đến kết quả, thay vì round()
hoặc ceiling()
.
Phân chia theo Zero
Nếu bạn cố gắng chia một số cho 0, bạn sẽ gặp lỗi.
SELECT div(12, 0);
Kết quả:
ERROR: division by zero
Nhưng nếu bạn chia số 0 cho một số khác, thì bạn sẽ chỉ nhận được số không.
SELECT div(0, 12);
Kết quả:
0