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

Định dạng một số dưới dạng phần trăm trong Oracle

Mặc dù Cơ sở dữ liệu Oracle có TO_CHAR(number) cho phép chúng tôi định dạng số, nó không cung cấp phần tử định dạng cho dấu phần trăm.

Do đó, nếu chúng ta muốn định dạng một số dưới dạng phần trăm trong Cơ sở dữ liệu Oracle, chúng ta cần nối dấu phần trăm và số.

Ví dụ

Chúng ta có thể sử dụng CONCAT() hàm để nối số và dấu phần trăm.

Chúng tôi vẫn có thể sử dụng TO_CHAR(number) chức năng định dạng số để nó có các vị trí thập phân mong muốn, các số 0 ở đầu (hoặc không), v.v.:

SELECT CONCAT(TO_CHAR(18, 'fm00D00'), '%')
FROM DUAL;

Kết quả:

18.00%

Ở đây, tôi đã sử dụng 0 phần tử định dạng, có nghĩa là vị trí chữ số sẽ luôn được in, ngay cả khi nó chứa số 0 ở đầu / cuối.

Tôi cũng đã sử dụng fm công cụ sửa đổi định dạng để loại bỏ bất kỳ số không hoặc khoảng trống ở đầu / cuối.

Đây là với một số mô hình định dạng khác:

SELECT 
    CONCAT(TO_CHAR(7, 'fm00'), '%') AS "1",
    CONCAT(TO_CHAR(7, 'fm99'), '%') AS "2",
    CONCAT(TO_CHAR(7.4567, 'fm0D00'), '%') AS "3",
    CONCAT(TO_CHAR(7, 'fm0D00'), '%') AS "4"
FROM DUAL;

Kết quả:

     1     2        3        4 
______ _____ ________ ________ 
07%    7%    7.46%    7.00%   

Chúng tôi có thể thực hiện một phép tính dựa trên con số nếu được yêu cầu:

SELECT 
    CONCAT(TO_CHAR(18 * 0.1, 'fm99D00'), '%') AS "1",
    CONCAT(TO_CHAR(0.18 * 100, 'fm99D00'), '%') AS "2"
FROM DUAL;

Kết quả:

       1         2 
________ _________ 
1.80%    18.00%   

Trong trường hợp này, tôi đã bao gồm 9 phần tử định dạng để bỏ qua bất kỳ số 0 nào ở đầu.

Bỏ qua TO_CHAR() Chức năng

Nếu chúng tôi không có nhu cầu cụ thể để định dạng số ngoài việc chuyển nó sang định dạng phần trăm, thì chúng tôi thậm chí không cần TO_CHAR() chức năng:

SELECT CONCAT(18, '%')
FROM DUAL;

Kết quả:

18%

Toán tử kết hợp

Một cách khác để nối số và dấu phần trăm là sử dụng toán tử ghép (|| ):

SELECT 18 || '%'
FROM DUAL;

Kết quả:

18%

Và đây là với TO_CHAR() đã thêm chức năng để định dạng thêm:

SELECT TO_CHAR(18, 'fm00D00') || '%'
FROM DUAL;

Kết quả:

18.00%

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perl DBD ::Cài đặt mô-đun Oracle

  2. Gọi thủ tục được lưu trữ Oracle với tham số đầu ra từ SQL Server

  3. Truy vấn gốc ở chế độ ngủ đông - cột char (3)

  4. Thiết lập tối thiểu cần thiết để triển khai ứng dụng .NET với máy khách Oracle 11 là gì?

  5. Không thể truyền kết nối tới oracle.jdbc.OracleConnection