PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách Round () hoạt động trong PostgreSQL

Trong PostgreSQL, round() hàm được sử dụng để làm tròn một số.

Hàm có thể hoạt động theo một trong hai cách, tùy thuộc vào cách bạn sử dụng. Bạn có thể làm tròn số đến số nguyên gần nhất hoặc đến một số chữ số thập phân được chỉ định.

Điều này được xác định bởi số lượng đối số bạn truyền vào hàm khi bạn gọi nó.

Cú pháp

round() hàm có thể được sử dụng theo một trong các cách sau:

 round(dp or numeric)
round(v numeric, s int) 

Cú pháp đầu tiên làm tròn số đến số nguyên gần nhất. dp cho biết double precision .

Cú pháp thứ hai làm tròn nó đến một số vị trí thập phân được chỉ định. Trong trường hợp này, v là số và s là số vị trí thập phân.

Kiểu trả về cho hàm này giống với kiểu đầu vào.

Ví dụ về cú pháp đầu tiên

Dưới đây là một ví dụ sử dụng cú pháp đầu tiên.

 SELECT round(13.50); 

Kết quả:

 14 

Trong trường hợp này, giây phân số là 50 và do đó số được làm tròn lên đến số nguyên gần nhất.

Nếu số giây phân số nhỏ hơn 50, nó sẽ được làm tròn xuống và kết quả sẽ là 13.

Đây là một ví dụ về điều đó.

 SELECT round(13.49); 

Kết quả:

 13 

Ví dụ về cú pháp thứ hai

Đây là một ví dụ sử dụng cú pháp thứ hai.

 SELECT round(13.50, 1); 

Kết quả:

 13,5 

Trong trường hợp này, không có gì được làm tròn và số 0 chỉ đơn giản là bỏ đi. Trong những trường hợp như vậy, nó trả về cùng một kết quả mà chúng ta sẽ thấy nếu chúng ta sử dụng trunc() hàm số.

Tuy nhiên, nếu chúng ta điều chỉnh giây phân số một chút, chúng ta sẽ thấy rằng kết quả được làm tròn.

 SELECT 
  round(13.45, 1) AS "13.45",
  round(13.44, 1) AS "13.44"; 

Kết quả:

13,45 | 13,44 ------- + ------- 13,5 | 13.4

Tuy nhiên, điều quan trọng cần lưu ý là kết quả hoàn toàn phụ thuộc vào số giây phân số mà bạn chỉ định trong đối số thứ hai.

Đây là ví dụ tương tự một lần nữa, nhưng với hai chữ số thập phân được chỉ định.

 SELECT 
  round(13.45, 2) AS "13.45",
  round(13.44, 2) AS "13.44"; 

Kết quả:

13,45 | 13,44 ------- + ------- 13,45 | 13,44

Trong trường hợp này, không có gì được làm tròn, vì tôi đã chỉ định số chữ số thập phân chính xác mà tôi đã cung cấp.

Thêm phân số giây

Không có gì ngăn bạn chỉ định nhiều giây phân số hơn số giây ban đầu.

 SELECT 
  round(13.45, 3) AS "13.45",
  round(13.44, 3) AS "13.44"; 

Kết quả:

13,45 | 13,44 -------- + -------- 13,450 | 13.440

Trong trường hợp này, nó chỉ cần thêm một số 0 vào phần bên phải của giây phân số.

Dưới đây là một ví dụ về việc chỉ định một số vị trí thập phân khi số ban đầu không bao gồm bất kỳ phân số giây nào.

 SELECT round(12, 3); 

Kết quả:

 12.000 

Vị trí thập phân phủ định

Đây là những gì sẽ xảy ra khi đối số thứ hai là một giá trị âm.

 SELECT round(789, -2); 

Kết quả:

 800 

Đây là một số khác.

 SELECT 
  round(789, -2),
  round(789, -1),
  round(489, -2),
  round(489, -1),
  round(489, -3); 

Kết quả:

 vòng | vòng | vòng | vòng | vòng ------- + ------- + ------- + ------- + ------- 800 | 790 | 500 | 490 | 0 

Round () vs Trunc ()

Trong một số trường hợp, round() hàm có thể hoạt động theo cách tương tự với trunc() . Nhưng chúng khá khác nhau.

round() hàm làm tròn số. Số được làm tròn đến số nguyên gần nhất hoặc đến số chữ số thập phân được chỉ định (tùy thuộc vào việc bạn cung cấp cho nó một đối số hay hai đối số).

trunc() mặt khác, hàm này chỉ đơn giản là cắt bớt số về 0 hoặc đến vị trí thập phân được chỉ định. Không làm tròn số nào được thực hiện.

Dưới đây là một ví dụ để chứng minh sự khác biệt.

 SELECT 
  round(1.49, 1),
  trunc(1.49, 1); 

Kết quả:

 vòng | trunc ------- + ------- 1,5 | 1.4 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách nhập tệp kết xuất Heroku PG vào máy cục bộ

  2. Giám sát cơ sở dữ liệu PostgreSQL:Mẹo để giám sát những gì

  3. Mẹo lưu trữ bản sao lưu PostgreSQL trên Amazon AWS

  4. in giá trị của một biến trong postgresql

  5. Truyền kiểu NULL khi cập nhật nhiều hàng