Posterior a de nuestra extensa búsqueda de datos resolvimos esta incógnita que pueden tener ciertos usuarios. Te ofrecemos la solución y nuestro objetivo es servirte de mucha apoyo.
Solución:
Solo usa el DIGITS
función, porque esta verifica la longitud del campo numérico o decimal, etc y se completa con ceros a la izquierda cuando es necesario.
SELECT DIGITS(FIELD) FROM ...
La longitud de la resultante string es siempre:
- 5 si el argumento es un entero pequeño
- 10 si el argumento es un entero grande
- 19 si el argumento es un entero grande
Según su comentario en la respuesta de @Mr Fuzzy Botton, supongo que está en DB2 for i
que no tiene la LPAD
función. En su lugar, podría utilizar una combinación de los REPEAT
y RIGHT
funciones:
SELECT RIGHT(REPEAT('0', 11) || LTRIM(CHAR(your_field)), 11)
FROM your_table
Usando http://pic.dhe.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2.doc.sqlref/castsp.htm para obtener detalles sobre CAST
y http://pic.dhe.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db2z10.doc.sqlref/src/tpc/db2z_scalarfunctionsintro.htm para string funciones,
Supongo que esto debería hacer el truco:
SELECT LPAD( CAST(FIELD AS CHAR(11)) ,11,'0') AS PADDEDFIELD
Agradecemos que quieras añadir valor a nuestra información dando tu experiencia en las reseñas.