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

4 Cara Memformat Angka Tanpa Desimal di Oracle

Saat menggunakan Oracle Database, Anda dapat menggunakan fungsi seperti TO_CHAR(number) untuk mengembalikan angka sebagai string. Ini memungkinkan Anda memformat angka untuk memiliki jumlah tempat desimal tertentu – termasuk tanpa tempat desimal, jika itu yang Anda inginkan.

Anda juga dapat menggunakan fungsi seperti ROUND(number) dan TRUNC(number) untuk membulatkan atau memotong angka menjadi tanpa desimal.

Ada juga CAST() fungsi yang memungkinkan Anda untuk mentransmisikan tipe data sebagai bilangan bulat, yang secara efektif menghapus semua tempat desimal.

TO_CHAR() Fungsi

Berikut adalah contoh yang menggunakan TO_CHAR(number) fungsi:

SELECT TO_CHAR(1234.56, 'fm99G999')
FROM DUAL;

Hasil:

1,235

Dalam hal ini model format saya terdiri dari:

  • satu fm , yang merupakan pengubah format yang menghapus karakter pengisi awal dan/atau akhir yang mungkin ditambahkan ke hasil.
  • beberapa 9 karakter, yang mewakili setiap digit
  • satu G karakter, yang mewakili pemisah grup yang sadar-lokal

Yang penting diperhatikan adalah tidak menggunakan D elemen format, yang merupakan karakter desimal yang sadar format. Juga tidak menggunakan karakter desimal literal (seperti koma atau titik). Dan karena tidak memiliki karakter desimal, jelas tidak ada angka yang mengikuti karakter tersebut.

Jika kami melakukannya memiliki karakter desimal, 9 atau 0 elemen di sebelah kanannya dapat menghasilkan tempat desimal yang disertakan dalam hasil.

Contoh:

SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;

Hasil:

7.00

Untuk menekan angka nol yang tertinggal, kita dapat mengubah 0 karakter ke 9 s. Namun, menghapus fm pengubah dapat menghasilkan angka nol yang tertinggal bahkan saat menggunakan 9 elemen format.

Berikut perbandingan untuk menggambarkan apa yang saya maksud:

SELECT 
    TO_CHAR(7, 'fm99D00') AS "r1",
    TO_CHAR(7, 'fm99D99') AS "r2",
    TO_CHAR(7, '99D99') AS "r3"
FROM DUAL;

Hasil:

     r1    r2        r3 
_______ _____ _________ 
7.00    7.      7.00   

The ROUND() Fungsi

Berikut adalah contoh yang menggunakan ROUND(number) fungsi:

SELECT ROUND(1234.56, 0)
FROM DUAL;

Hasil:

1235

ROUND() fungsi membulatkan angka ke tempat desimal tertentu. Di sini, kami menentukan nol tempat desimal, yang menghapus semua tempat desimal dari nomor tersebut.

Dalam hal ini, jumlahnya dibulatkan.

TRUNC() Fungsi

Berikut adalah contoh yang menggunakan TRUNC(number) fungsi:

SELECT TRUNC(1234.56, 0)
FROM DUAL;

Hasil:

1234

TRUNC() fungsi memotong angka ke tempat desimal tertentu. Tidak terjadi pembulatan. Oleh karena itu, angka ini dipotong menjadi nol desimal, tanpa pembulatan.

CAST() Fungsi

Berikut adalah contoh yang menggunakan CAST() fungsi:

SELECT CAST(1234.56 AS INT) 
FROM DUAL;

Hasil:

1235

CAST() fungsi mengubah argumennya menjadi tipe data yang berbeda. Dalam hal ini kami mengonversi angka menjadi bilangan bulat. Bilangan bulat tidak memiliki tempat desimal, sehingga semua bagian pecahan dihilangkan dari hasil (termasuk karakter desimal). Perhatikan bahwa hasilnya telah dibulatkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana mengantisipasi dan menghindari kutipan tunggal ' di oracle

  2. cara meneruskan variabel dari skrip shell ke sqlplus

  3. ORA-00979 bukan grup dengan ekspresi

  4. Kelas Pool Koneksi Oracle

  5. Definisikan Kursor secara kondisional