Oracle
 sql >> Database >  >> RDS >> Oracle

Come formattare i numeri con un segno meno/più in Oracle

Quando si utilizza TO_CHAR() per formattare un numero in Oracle Database, puoi usare la S format per restituire il suo segno (ovvero un segno più per valori positivi e un segno meno per valori negativi).

Puoi anche usare il MI format per restituire valori negativi con un segno negativo finale e valori positivi con uno spazio vuoto finale.

Esempio di S Formato elemento

Ecco un esempio per dimostrare la S elemento di formato:

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

Risultato:

   Negative    Positive 
___________ ___________ 
-7          +7         

La S L'elemento format può in alternativa essere applicato all'ultima posizione del modello di formato. Ciò comporta l'aggiunta del segno al risultato:

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

Risultato:

   Negative    Positive 
___________ ___________ 
7-          7+         

Ma la S l'elemento format non può apparire su entrambe le estremità del modello di formato. In tal caso, si verifica un errore:

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

Risultato:

Error report -
ORA-01481: invalid number format model

Il MI Formato elemento

Il MI elemento di formato un segno negativo finale nei casi in cui il numero è negativo e uno spazio vuoto finale dove è positivo:

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

Risultato:

   Negative    Positive 
___________ ___________ 
7-          7          

Nota che il MI l'elemento format può apparire solo nell'ultima posizione del modello di formato. Se si trova in un'altra posizione, si verifica un errore:

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

Risultato:

Error report -
ORA-01481: invalid number format model