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

Como preencher zeros para um campo numérico?


Se você quiser o valor até milésimos, mas não mais da parte decimal, então você pode multiplicar por 1000 e FLOOR ou use TRUNC . Assim:
SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM   table_name;

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

Usando TO_CHAR só irápermitir um número máximo de dígitos com base na máscara de formato (se o valor ultrapassar este tamanho então irámostrar # s em vez de números), mas lidará com números negativos (colocando o sinal de menos antes dos zeros à esquerda).

Usando LPAD permitirá qualquer tamanho de entrada, mas se a entrada for negativa, o sinal de menos estará no meio da string (após qualquer zero à esquerda).