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

¿Cómo rellenar ceros para un campo numérico?

Si desea el valor hasta las milésimas pero no más de la parte decimal, puede multiplicar por 1000 y FLOOR o usa TRUNC . Así:

SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM   table_name;

o:

SELECT LPAD( TRUNC( value * 1000 ), 8, '0' )
FROM   table_name;

Usando TO_CHAR solo permitirá un número máximo de dígitos establecido en función de la máscara de formato (si el valor supera este tamaño, se mostrará # s en lugar de números) pero manejará números negativos (colocando el signo menos antes de los ceros iniciales).

Usando LPAD permitirá cualquier tamaño de entrada, pero si la entrada es negativa, el signo menos estará en el medio de la cadena (después de cualquier cero inicial).