Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment remplir des zéros pour un champ numérique ?

Si vous voulez la valeur jusqu'aux millièmes mais pas plus de la partie décimale, vous pouvez multiplier par 1000 et soit FLOOR ou utilisez TRUNC . Comme ceci :

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

ou :

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

Utilisation de TO_CHAR n'autorisera qu'un nombre maximum de chiffres défini en fonction du masque de format (si la valeur dépasse cette taille, elle affichera # s au lieu de nombres) mais il gérera les nombres négatifs (en plaçant le signe moins avant les zéros non significatifs).

Utilisation de LPAD autorisera n'importe quelle taille d'entrée, mais si l'entrée est négative, le signe moins sera au milieu de la chaîne (après tous les zéros non significatifs).