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 và 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.