Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como formatar números com um sinal de menos/mais no Oracle


Ao usar o TO_CHAR() função para formatar um número no Oracle Database, você pode usar o S elemento de formato para retornar seu sinal (ou seja, um sinal de mais para valores positivos e um sinal de menos para valores negativos).

Você também pode usar o MI elemento de formato para retornar valores negativos com um sinal negativo à direita e valores positivos com um espaço em branco à direita.

Exemplo do S Elemento de formato


Aqui está um exemplo para demonstrar o S elemento de formato:
SELECT 
    TO_CHAR(-7, 'S9') AS "Negative",
    TO_CHAR(7, 'S9') AS "Positive"
FROM DUAL;

Resultado:
   Negative    Positive 
___________ ___________ 
-7          +7         

O S elemento de formato pode ser aplicado alternativamente na última posição do modelo de formato. Isso resulta no sinal sendo anexado ao resultado:
SELECT 
    TO_CHAR(-7, '9S') AS "Negative",
    TO_CHAR(7, '9S') AS "Positive"
FROM DUAL;

Resultado:
   Negative    Positive 
___________ ___________ 
7-          7+         

Mas o S elemento de formato não pode aparecer em ambas as extremidades do modelo de formato. Se isso acontecer, ocorrerá um erro:
SELECT TO_CHAR(7, 'S9S')
FROM DUAL;

Resultado:
Error report -
ORA-01481: invalid number format model

O MI Elemento de formato


O MI elemento de formato um sinal negativo final nos casos em que o número é negativo e um espaço em branco final onde é positivo:
SELECT 
    TO_CHAR(-7, '9MI') AS "Negative",
    TO_CHAR(7, '9MI') AS "Positive"
FROM DUAL;

Resultado:
   Negative    Positive 
___________ ___________ 
7-          7          

Observe que o MI elemento de formato só pode aparecer na última posição do modelo de formato. Se estiver em qualquer outra posição, ocorre um erro:
SELECT TO_CHAR(7, 'MI9')
FROM DUAL;

Resultado:
Error report -
ORA-01481: invalid number format model