Oracle
 sql >> Base de données >  >> RDS >> Oracle

Formater un nombre en pourcentage dans Oracle

Même si la base de données Oracle a un TO_CHAR(number) fonction qui nous permet de formater les nombres, elle ne fournit pas d'élément de format pour le signe de pourcentage.

Par conséquent, si nous voulons formater un nombre en pourcentage dans Oracle Database, nous devons concaténer le signe de pourcentage et le nombre.

Exemple

Nous pouvons utiliser le CONCAT() fonction pour concaténer le nombre et le signe de pourcentage.

Nous pouvons toujours utiliser le TO_CHAR(number) fonction pour formater le nombre afin qu'il ait les décimales souhaitées, des zéros non significatifs (ou non), etc :

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

Résultat :

18.00%

Ici, j'ai utilisé le 0 élément de format, ce qui signifie que la position du chiffre sera toujours imprimée, même s'il contient un zéro de tête/de fin.

J'ai aussi utilisé le fm modificateur de format pour supprimer les zéros ou les blancs de tête/de fin.

Le voici avec quelques autres modèles de format :

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;

Résultat :

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

Nous pouvons effectuer un calcul par rapport au nombre si nécessaire :

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

Résultat :

       1         2 
________ _________ 
1.80%    18.00%   

Dans ce cas, j'ai inclus le 9 élément de format afin que tous les zéros non significatifs soient omis.

Omettre le TO_CHAR() Fonction

Si nous n'avons aucun besoin spécifique de formater le nombre autre que de le convertir en un format de pourcentage, alors nous n'avons même pas besoin du TO_CHAR() fonction :

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

Résultat :

18%

L'opérateur de concaténation

Une autre façon de concaténer le nombre et le signe de pourcentage est d'utiliser l'opérateur de concaténation (|| ):

SELECT 18 || '%'
FROM DUAL;

Résultat :

18%

Et le voici avec le TO_CHAR() fonction ajoutée pour un formatage supplémentaire :

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

Résultat :

18.00%