sql >> Base de Datos >  >> RDS >> Oracle

Cómo formatear números con un signo menos/más en Oracle

Al usar TO_CHAR() función para dar formato a un número en la base de datos de Oracle, puede utilizar el S elemento de formato para devolver su signo (es decir, un signo más para valores positivos y un signo menos para valores negativos).

También puede usar el MI elemento de formato para devolver valores negativos con un signo negativo al final y valores positivos con un espacio en blanco al final.

Ejemplo de la S Elemento de formato

Aquí hay un ejemplo para demostrar el S elemento de formato:

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

Resultado:

   Negative    Positive 
___________ ___________ 
-7          +7         

La S El elemento de formato se puede aplicar alternativamente en la última posición del modelo de formato. Esto da como resultado que se agregue el signo al resultado:

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

Resultado:

   Negative    Positive 
___________ ___________ 
7-          7+         

Pero el S El elemento de formato no puede aparecer en ambos extremos del modelo de formato. Si lo hace, se produce un error:

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

Resultado:

Error report -
ORA-01481: invalid number format model

El MI Elemento de formato

El MI elemento de formato un signo negativo al final en los casos en que el número es negativo y un espacio en blanco al final cuando es positivo:

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

Resultado:

   Negative    Positive 
___________ ___________ 
7-          7          

Tenga en cuenta que el MI El elemento de formato solo puede aparecer en la última posición del modelo de formato. Si está en cualquier otra posición, se produce un error:

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

Resultado:

Error report -
ORA-01481: invalid number format model