sql >> Databáze >  >> RDS >> Oracle

Proč oracle neukazuje celočíselnou část desetinného čísla

SQL*Plus ve výchozím nastavení zobrazí (s použitím oddělovače desetinných míst vaší oblasti):

SQL> select 1/3 from dual;

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

Můžete použít set numformat změnit chování:

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

    1/3
-------
 0.3333

... kde D představuje oddělovač desetinných míst. Nebo můžete použít formátování sloupců s aliasem sloupce:

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

ANSWER
------
 0.333

Jiní klienti mají různé způsoby ovládání výchozího výstupu; SQL Developer se chová v podstatě stejně, ale PL/SQL Developer, Toad atd. nemusí.

Nebo můžete číslo naformátovat jako součást dotazu, což není závislé na klientovi:

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

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

Musíte však poskytnout dostatek číslic pro celočíselnou část čehokoli, co počítáte. Cokoli menšího než nula je jednoduché, ale pokud je před desetinným oddělovačem příliš mnoho číslic, nezobrazí se vůbec:

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

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



  1. PDO vytváření databáze a tabulek

  2. Jak mohu v SQL Server Management Studio spustit pouze příkaz, na kterém je můj kurzor?

  3. bind_param error - Počet prvků v řetězci definice typu neodpovídá počtu proměnných vazby

  4. MariaDB MaxScale Load Balancing na Docker:Management:Část druhá