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

Format Angka sebagai Persentase di Oracle

Meskipun Oracle Database memiliki TO_CHAR(number) fungsi yang memungkinkan kita untuk memformat angka, tidak menyediakan elemen format untuk tanda persentase.

Oleh karena itu, jika kita ingin memformat angka sebagai persentase di Oracle Database, kita perlu menggabungkan tanda persentase dan angka.

Contoh

Kita dapat menggunakan CONCAT() berfungsi untuk menggabungkan angka dan tanda persentase.

Kami masih dapat menggunakan TO_CHAR(number) berfungsi untuk memformat angka sehingga memiliki tempat desimal yang diinginkan, di depan nol (atau tidak), dll:

SELECT CONCAT(TO_CHAR(18, 'fm00D00'), '%')
FROM DUAL;

Hasil:

18.00%

Di sini, saya menggunakan 0 elemen format, yang berarti bahwa posisi digit akan selalu dicetak, meskipun mengandung nol di depan/di belakang.

Saya juga menggunakan fm pengubah format untuk menekan nol atau kosong di depan/di belakang.

Ini dia dengan beberapa model format lainnya:

SELECT 
    CONCAT(TO_CHAR(7, 'fm00'), '%') AS "1",
    CONCAT(TO_CHAR(7, 'fm99'), '%') AS "2",
    CONCAT(TO_CHAR(7.4567, 'fm0D00'), '%') AS "3",
    CONCAT(TO_CHAR(7, 'fm0D00'), '%') AS "4"
FROM DUAL;

Hasil:

     1     2        3        4 
______ _____ ________ ________ 
07%    7%    7.46%    7.00%   

Kami dapat melakukan perhitungan terhadap angka jika diperlukan:

SELECT 
    CONCAT(TO_CHAR(18 * 0.1, 'fm99D00'), '%') AS "1",
    CONCAT(TO_CHAR(0.18 * 100, 'fm99D00'), '%') AS "2"
FROM DUAL;

Hasil:

       1         2 
________ _________ 
1.80%    18.00%   

Dalam hal ini saya menyertakan 9 elemen format sehingga nol di depan dihilangkan.

Menghilangkan TO_CHAR() Fungsi

Jika kita tidak memiliki kebutuhan khusus untuk memformat angka selain mengubahnya menjadi format persentase, maka kita bahkan tidak memerlukan TO_CHAR() fungsi:

SELECT CONCAT(18, '%')
FROM DUAL;

Hasil:

18%

Operator Penggabungan

Cara lain untuk menggabungkan angka dan tanda persentase adalah dengan menggunakan operator penggabungan (|| ):

SELECT 18 || '%'
FROM DUAL;

Hasil:

18%

Dan ini dia dengan TO_CHAR() fungsi ditambahkan untuk pemformatan ekstra:

SELECT TO_CHAR(18, 'fm00D00') || '%'
FROM DUAL;

Hasil:

18.00%

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rencana eksekusi Oracle saat menggunakan operator LIKE dengan fungsi DETERMINISTIC

  2. Oracle SQL Where klausa untuk menemukan catatan tanggal yang lebih lama dari 30 hari

  3. Pembuatan tabel dan penyisipan dalam prosedur yang sama di pl/sql

  4. Pilih Baris Pertama Setiap Grup di sql

  5. Cari Tahu Simbol Mata Uang Yang Digunakan Sesi Anda di Oracle