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

4 cách để định dạng một số không có số thập phân trong Oracle

Khi sử dụng Cơ sở dữ liệu Oracle, bạn có thể sử dụng các hàm như TO_CHAR(number) để trả về các số dưới dạng một chuỗi. Điều này cho phép bạn định dạng số để có một số vị trí thập phân cụ thể - bao gồm không có vị trí thập phân, nếu đó là điều bạn muốn.

Bạn cũng có thể sử dụng các hàm như ROUND(number)TRUNC(number) để làm tròn hoặc cắt bớt số đến không có chữ số thập phân.

Ngoài ra còn có CAST() cho phép bạn truyền kiểu dữ liệu dưới dạng số nguyên, loại bỏ hiệu quả bất kỳ vị trí thập phân nào.

TO_CHAR() Chức năng

Đây là một ví dụ sử dụng TO_CHAR(number) chức năng:

SELECT TO_CHAR(1234.56, 'fm99G999')
FROM DUAL;

Kết quả:

1,235

Trong trường hợp này, mô hình định dạng của tôi bao gồm:

  • một fm , là công cụ sửa đổi định dạng loại bỏ mọi ký tự đệm ở đầu và / hoặc ở cuối có thể được thêm vào kết quả.
  • nhiều 9 các ký tự, đại diện cho từng chữ số
  • một G ký tự đại diện cho dấu phân tách nhóm nhận biết ngôn ngữ

Điều quan trọng cần lưu ý là nó không sử dụng D phần tử định dạng, là ký tự thập phân nhận biết định dạng. Nó cũng không sử dụng bất kỳ ký tự thập phân theo nghĩa đen nào (chẳng hạn như dấu phẩy hoặc dấu chấm). Và bởi vì nó không có bất kỳ ký tự thập phân nào, nên rõ ràng là không có chữ số nào theo sau một ký tự như vậy.

Nếu chúng tôi đã làm có một ký tự thập phân, bất kỳ 9 hoặc 0 các phần tử ở bên phải của nó có thể dẫn đến các vị trí thập phân được đưa vào kết quả.

Ví dụ:

SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;

Kết quả:

7.00

Để loại bỏ các số không ở cuối, chúng ta có thể thay đổi 0 ký tự thành 9 S. Tuy nhiên, xóa fm công cụ sửa đổi có thể dẫn đến các số không ở cuối xuất hiện ngay cả khi sử dụng 9 phần tử định dạng.

Dưới đây là một so sánh để minh họa ý tôi muốn nói:

SELECT 
    TO_CHAR(7, 'fm99D00') AS "r1",
    TO_CHAR(7, 'fm99D99') AS "r2",
    TO_CHAR(7, '99D99') AS "r3"
FROM DUAL;

Kết quả:

     r1    r2        r3 
_______ _____ _________ 
7.00    7.      7.00   

ROUND() Chức năng

Đây là một ví dụ sử dụng ROUND(number) chức năng:

SELECT ROUND(1234.56, 0)
FROM DUAL;

Kết quả:

1235

ROUND() hàm làm tròn một số đến một chữ số thập phân cho trước. Ở đây, chúng tôi đã chỉ định vị trí thập phân bằng 0, điều này sẽ xóa tất cả các vị trí thập phân khỏi số.

Trong trường hợp này, con số đã được làm tròn.

TRUNC() Chức năng

Dưới đây là một ví dụ sử dụng TRUNC(number) chức năng:

SELECT TRUNC(1234.56, 0)
FROM DUAL;

Kết quả:

1234

TRUNC() hàm cắt ngắn một số đến một vị trí thập phân nhất định. Không có làm tròn xảy ra. Do đó, số này đã bị cắt ngắn đến 0 chữ số thập phân, không làm tròn số.

CAST() Chức năng

Dưới đây là một ví dụ sử dụng CAST() chức năng:

SELECT CAST(1234.56 AS INT) 
FROM DUAL;

Kết quả:

1235

CAST() hàm chuyển đổi đối số của nó thành một kiểu dữ liệu khác. Trong trường hợp này, chúng tôi đã chuyển đổi số thành số nguyên. Số nguyên không có chữ số thập phân và do đó, tất cả các phần của phân số đều bị xóa khỏi kết quả (bao gồm cả ký tự thập phân). Lưu ý rằng kết quả đã được làm tròn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. rs.last () cung cấp cho phép toán Không hợp lệ đối với bộ kết quả chỉ chuyển tiếp:cuối cùng

  2. Các hàm số trong Oracle (Danh sách đầy đủ)

  3. Phương thức thực thi Spring Hibernate Template trả về loại đối tượng nào cho một truy vấn đếm trên Oracle?

  4. Trong cơ sở dữ liệu Oracle, sự khác biệt giữa ROWNUM và ROW_NUMBER là gì?

  5. Cố gắng xuất một Oracle qua PL / SQL sẽ đưa ra ngày từ 0000-00-00