Oracle
 sql >> база данни >  >> RDS >> Oracle

Защо Oracle не показва цялата част от десетичната запетая

SQL*Plus ще покаже това по подразбиране (използвайки десетичния разделител на вашата територия):

SQL> select 1/3 from dual;

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

Можете да използвате set numformat за промяна на поведението:

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

    1/3
-------
 0.3333

... където D представлява десетичния разделител. Или можете да използвате форматиране на колона с псевдоним на колона:

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

ANSWER
------
 0.333

Други клиенти имат различни начини за контролиране на изхода по подразбиране; SQL Developer се държи почти по същия начин, но PL/SQL Developer, Toad и т.н. може да не се държи.

Или можете да форматирате номера като част от заявката, която не зависи от клиента:

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

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

Все пак трябва да предоставите достатъчно цифри за цялата част от това, което изчислявате. Всичко по-малко от нула е просто, но ако има твърде много цифри преди десетичния разделител, то изобщо няма да се покаже:

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. Как да изтриете записите въз основа на предишни и следващи редове и да зададете дата въз основа на определени условия

  2. Обединяване на последователни интервали на валидност на датата

  3. Изтрийте дублиращи се записи с помощта на rownum в sql

  4. Как мога да намеря правилния размер кутия за всеки продукт?

  5. Как да изчислим промените в Oracle sql