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

Comment formater des nombres avec un signe moins/plus dans Oracle

Lors de l'utilisation de TO_CHAR() fonction pour formater un nombre dans Oracle Database, vous pouvez utiliser le S élément de format pour renvoyer son signe (c'est-à-dire un signe plus pour les valeurs positives et un signe moins pour les valeurs négatives).

Vous pouvez également utiliser le MI élément de format pour renvoyer des valeurs négatives avec un signe négatif à la fin et des valeurs positives avec un blanc à la fin.

Exemple de S Élément de format

Voici un exemple pour démontrer le S élément de format :

SELECT 
    TO_CHAR(-7, 'S9') AS "Negative",
    TO_CHAR(7, 'S9') AS "Positive"
FROM DUAL;

Résultat :

   Negative    Positive 
___________ ___________ 
-7          +7         

Le S L'élément de format peut également être appliqué à la dernière position du modèle de format. Cela se traduit par le signe ajouté au résultat :

SELECT 
    TO_CHAR(-7, '9S') AS "Negative",
    TO_CHAR(7, '9S') AS "Positive"
FROM DUAL;

Résultat :

   Negative    Positive 
___________ ___________ 
7-          7+         

Mais le S L'élément de format ne peut pas apparaître aux deux extrémités du modèle de format. Si c'est le cas, une erreur se produit :

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

Résultat :

Error report -
ORA-01481: invalid number format model

Le MI Élément de format

Le MI élément de format un signe négatif final dans les cas où le nombre est négatif, et un blanc final où il est positif :

SELECT 
    TO_CHAR(-7, '9MI') AS "Negative",
    TO_CHAR(7, '9MI') AS "Positive"
FROM DUAL;

Résultat :

   Negative    Positive 
___________ ___________ 
7-          7          

Notez que le MI L'élément de format ne peut apparaître qu'en dernière position du modèle de format. S'il se trouve dans une autre position, une erreur se produit :

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

Résultat :

Error report -
ORA-01481: invalid number format model