Oracle
 sql >> база данни >  >> RDS >> Oracle

Форматирайте число като процент в Oracle

Въпреки че Oracle Database има TO_CHAR(number) функция, която ни позволява да форматираме числа, тя не предоставя елемент за форматиране на знака за процент.

Следователно, ако искаме да форматираме число като процент в Oracle Database, трябва да обединим знака за процент и числото.

Пример

Можем да използваме CONCAT() функция за свързване на числото и знака за процент.

Все още можем да използваме TO_CHAR(number) функция за форматиране на числото, така че да има желаните десетични знаци, водещи нули (или не) и т.н.:

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

Резултат:

18.00%

Тук използвах 0 форматен елемент, което означава, че позицията на цифрата винаги ще се отпечатва, дори ако съдържа водеща/завършваща нула.

Използвах и fm модификатор на формат за потискане на всички начални/завършващи нули или празни места.

Ето го с някои други модели на формат:

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;

Резултат:

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

Можем да извършим изчисление спрямо числото, ако е необходимо:

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

Резултат:

       1         2 
________ _________ 
1.80%    18.00%   

В този случай включих 9 форматен елемент, така че всички водещи нули да бъдат пропуснати.

Пропускане на TO_CHAR() Функция

Ако нямаме конкретна нужда да форматираме числото, освен да го преобразуваме в процентен формат, тогава дори не се нуждаем от TO_CHAR() функция:

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

Резултат:

18%

Операторът за конкатенация

Друг начин за свързване на числото и знака за процент е да използвате оператора за конкатенация (|| ):

SELECT 18 || '%'
FROM DUAL;

Резултат:

18%

И ето го с TO_CHAR() добавена функция за допълнително форматиране:

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

Резултат:

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. Oracle намери ограничение

  2. Предоставяне на избор на всички таблици, собственост на конкретен потребител

  3. Oracle:Пълнотекстово търсене с условие

  4. Попълване на елемент от дърво с група записи във форми на Oracle

  5. Преобразувайте минутите във формат HH24:MI