Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mengapa Oracle tidak menunjukkan bagian bilangan bulat dari desimal

SQL*Plus akan menunjukkannya secara default (menggunakan pemisah desimal wilayah Anda):

SQL> select 1/3 from dual;

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

Anda dapat menggunakan set numformat untuk mengubah perilaku:

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

    1/3
-------
 0.3333

... di mana D mewakili pemisah desimal. Atau Anda dapat menggunakan pemformatan kolom, dengan alias kolom:

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

ANSWER
------
 0.333

Klien lain memiliki cara yang berbeda untuk mengontrol output default; Pengembang SQL berperilaku hampir sama, tetapi Pengembang PL/SQL, Toad, dll. mungkin tidak.

Atau Anda dapat memformat angka sebagai bagian dari kueri, yang tidak bergantung pada klien:

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

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

Anda perlu memberikan angka yang cukup untuk bagian bilangan bulat dari apa pun yang Anda hitung. Apa pun yang kurang dari nol itu sederhana, tetapi jika ada terlalu banyak digit sebelum pemisah desimal maka itu tidak akan ditampilkan sama sekali:

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. ORA-6502 dengan Pemicu Logging Hibah

  2. Bagaimana menggambarkan masalah kinerja dalam database relasional?

  3. Masalah membangun cx_Oracle - libclntsh.so.11.1 => tidak ditemukan

  4. Mengapa indeks tidak digunakan untuk kueri ini?

  5. Subquery Rekursif dengan penyortiran