viernes, 17 de mayo de 2013

Añadir ceros a la izquierda con SQL

El caso que nos ocupa es el siguiente:

"Importación de clientes a facturaplus desde SQL"


Partimos de un campo (int) de una tabla de SQL y pasarlo a una cadena con longitud fija. El formato que queremos es el siguiente  "99XXXX". Puede darse el caso de que no necesitemos ningún cero a la izquierda. Para ello tenemos que controlar la longitud de la cadena. Me enrrollo, cuando con el ejemplo se va a ver rápidamente.

Esta sería la consulta:

SELECT
 '99'+ REPLICATE('0', 4 - DATALENGTH(CAST(CAMPO_NUMERO AS VARCHAR(4)))) + CAST(CAMPO_NUMERO AS VARCHAR(4)) AS CCODCLI

Resultados posibles:

 CCODCLI
 990047
 990537
 991542
 990004

Explicación:

Lo importante es saber las veces que hay que poner el cero a la izquierda, para ello restamos la longitud total del campo, es decir,  4 al número de caracteres que tenga la cifra.

Saludos