Oracle
 sql >> Database >  >> RDS >> Oracle

Come riempire gli zeri per un campo numerico?

Se vuoi il valore fino ai millesimi ma non più della parte decimale, puoi moltiplicare per 1000 e FLOOR oppure usa TRUNC . In questo modo:

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

oppure:

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

Usando TO_CHAR consentirà solo un numero massimo di cifre impostato in base alla maschera del formato (se il valore supera questa dimensione verrà visualizzato # s invece dei numeri) ma gestirà i numeri negativi (mettendo il segno meno prima degli zeri iniziali).

Usando LPAD consentirà qualsiasi dimensione di input, ma se l'input è negativo il segno meno sarà al centro della stringa (dopo gli zeri iniziali).