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

Cách xóa Zeros theo dấu vết khỏi số thập phân trong PostgreSQL

Vấn đề:

Bạn muốn xóa các số không ở cuối khỏi phần thập phân của số thập phân.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên ribbon với dữ liệu trong các cột id , tên chiều rộng (tính bằng mét, được biểu thị bằng số thập phân với phần thập phân gồm 4 chữ số).

id tên chiều rộng
1 Satin lớn N24 1.2000
2 Tạo Yc2 0,5500
3 3 màu 4F1 3,2050
4 Dải băng màu xanh lam LB1 0,1265

Hãy lấy tên của các dải ruy băng cùng với chiều rộng của chúng tính bằng mét, nhưng không có các số không ở cuối.

Giải pháp:

Chúng tôi sẽ sử dụng toán tử ‘::’ để chuyển đổi số thập phân thành kiểu dữ liệu REAL. Đây là truy vấn bạn sẽ viết:

SELECT name, 
  width::REAL 
FROM ribbon;

Đây là kết quả:

name new_width
Satin N24 lớn 1.2
Tạo Yc2 0,55
Ba màu 4F1 3,205
Dải băng xanh LB1 0,1265

Thảo luận:

Sử dụng :: toán tử để chuyển đổi một số thập phân có chứa các số không ở cuối thành một số không có thêm các số 0. Toán tử này chuyển đổi giá trị ở bên trái thành kiểu dữ liệu được đặt ở bên phải.

Trong ví dụ của chúng tôi, giá trị thập phân theo chiều rộng đã được chuyển đổi thành kiểu dữ liệu REAL, không hiển thị các số không ở cuối. Ruy-băng 'Large Satin N24' có width giá trị 1,2000 - nhưng chúng tôi không cần số không trong phần thập phân của số này. Do đó, chúng tôi đã chuyển đổi sang kiểu dữ liệu REAL để cắt chúng (trong ví dụ của chúng tôi, ba số không đã bị loại bỏ). Đây là một cách thuận tiện để hiển thị số vì nó chỉ loại bỏ các số không ở cuối; ví dụ:‘Blue Ribbon LB1’ không có bất kỳ số không ở cuối sau dấu thập phân, vì vậy giá trị của nó vẫn giữ nguyên sau khi chuyển đổi.

Nếu bạn có cùng số lượng số không trong phần thập phân của tất cả các giá trị của mình, hãy sử dụng TRUNC() hàm số. Nó có hai đối số:giá trị / tên cột chứa số và một số nguyên cho biết số chữ số phân số mong muốn; phần còn lại bị cắt. Xem cùng một ví dụ với các giá trị khác nhau trong cột width :

id tên chiều rộng
1 Satin N24 cỡ lớn 1.200
2 Tạo Yc2 0,500
3 3 màu 4F1 3.200
4 Dải băng màu xanh lam LB1 0,100

Giải pháp 2:

Đây là truy vấn bạn sẽ viết:

SELECT name, 
  TRUNC(width,1) 
FROM ribbon;

Đây là kết quả:

name new_width
Satin N24 lớn 1.0
Tạo Yc2 0,5
Ba màu 4F1 3.2
Dải băng màu xanh lam LB1 0,1

Chỉ một chữ số được hiển thị ở phần thập phân. Lưu ý rằng TRUNC () cắt tất cả các chữ số, không chỉ số 0.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgreSQL - psql \ i:cách thực thi tập lệnh trong một đường dẫn nhất định

  2. Cách lấy số hàng trong PostgreSQL

  3. Làm cách nào để bạn có thể kết nối những người dùng đang hoạt động với cơ sở dữ liệu postgreSQL thông qua SQL?

  4. Nhập Thư viện psycopg2 không được tải:libssl.1.0.0.dylib

  5. Cách hoạt động của hàm Sign () trong PostgreSQL