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

Tại sao oracle không hiển thị phần nguyên của số thập phân

SQL * Plus sẽ hiển thị điều đó theo mặc định (sử dụng dấu phân tách thập phân của lãnh thổ của bạn):

SQL> select 1/3 from dual;

       1/3
----------
.333333333

Bạn có thể sử dụng set numformat để thay đổi hành vi:

SQL> set numformat "0D9999"
SQL> select 1/3 from dual;

    1/3
-------
 0.3333

... trong đó D đại diện cho dấu phân cách thập phân. Hoặc bạn có thể sử dụng định dạng cột, với bí danh cột:

SQL> set numformat ""
SQL> column answer format 0.000
SQL> select 1/3 as answer from dual;

ANSWER
------
 0.333

Các máy khách khác có các cách khác nhau để kiểm soát đầu ra mặc định; SQL Developer hoạt động giống nhau, nhưng PL / SQL Developer, Toad, v.v. có thể không.

Hoặc bạn có thể định dạng số như một phần của truy vấn, không phụ thuộc vào khách hàng:

SQL> select to_char(1/3, '9990D99999') from dual;

TO_CHAR(1/3
-----------
    0.33333

Mặc dù vậy, bạn cần cung cấp đủ chữ số cho phần nguyên của bất kỳ thứ gì bạn đang tính. Bất cứ điều gì nhỏ hơn 0 đều đơn giản, nhưng nếu có quá nhiều chữ số trước dấu phân cách thập phân thì nó sẽ không hiển thị:

SQL> select to_char(100000/3, '9990D99999') from dual;

TO_CHAR(100
-----------
###########



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc duy nhất của Oracle dựa trên giá trị cột

  2. Làm thế nào để giới hạn một bảng cơ sở dữ liệu để chỉ một hàng có thể có một giá trị cụ thể trong một cột?

  3. ví dụ về cú pháp nối oracle

  4. Cách tránh lỗi ORA-04091 trong trình kích hoạt

  5. Lỗi SQL - thiếu từ khóa