sql >> Database >  >> RDS >> Oracle

Waarom orakel het gehele deel van een decimaalteken niet toont?

SQL*Plus zal dat standaard laten zien (met behulp van het decimale scheidingsteken van uw territorium):

SQL> select 1/3 from dual;

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

Je zou set numformat om het gedrag te veranderen:

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

    1/3
-------
 0.3333

... waarbij de D het decimaalteken vertegenwoordigt. Of u kunt kolomopmaak gebruiken, met een kolomalias:

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

ANSWER
------
 0.333

Andere clients hebben verschillende manieren om de standaarduitvoer te regelen; SQL Developer gedraagt ​​zich ongeveer hetzelfde, maar PL/SQL Developer, Toad etc. misschien niet.

Of u kunt het getal opmaken als onderdeel van de zoekopdracht, wat niet klantafhankelijk is:

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

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

U moet echter voldoende cijfers opgeven voor het gehele deel van wat u ook berekent. Alles kleiner dan nul is eenvoudig, maar als er te veel cijfers voor het decimaalteken staan, wordt het helemaal niet weergegeven:

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

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



  1. Hoe maak ik verbinding met MySQL 5.1 in Visual Studio 2010?

  2. MySQL-zoekopdracht jaarweek van de huidige week om te beginnen op een donderdag, te eindigen op woensdag

  3. Een rapport maken met de rapportwizard in Microsoft Access

  4. Update als de naam bestaat, anders invoegen - in SQL Server