sql >> Database teknologi >  >> RDS >> Oracle

Hvorfor Oracle ikke viser heltalsdelen af ​​en decimal

SQL*Plus viser det som standard (ved hjælp af dit områdes decimalseparator):

SQL> select 1/3 from dual;

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

Du kan bruge set numformat for at ændre adfærden:

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

    1/3
-------
 0.3333

... hvor D repræsenterer decimalseparatoren. Eller du kan bruge kolonneformatering med et kolonnealias:

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

ANSWER
------
 0.333

Andre klienter har forskellige måder at kontrollere standardoutputtet på; SQL Developer opfører sig stort set det samme, men PL/SQL Developer, Toad osv. er muligvis ikke.

Eller du kan formatere nummeret som en del af forespørgslen, som ikke er klientafhængig:

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

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

Du skal dog angive nok cifre til den heltallige del af det, du beregner. Alt mindre end nul er simpelt, men hvis der er for mange cifre før decimalseparatoren, vises det slet ikke:

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

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



  1. Sådan bruger du match imod i mysql

  2. Sådan indsætter du flere afkrydsningsfeltværdier i en database

  3. Hvordan forbinder man fra docker-compose til Host PostgreSQL?

  4. Hvordan fortolker man output fra MySQL EXPLAIN?