Me habia surgido la duda de como implementar la funcion LPAD de oracle, esa función que permite agregar caracteres comodines sobre un campo consultado.
Bueno lo que realmente hice no implica propiamente una implementación de esa función, sino mas bien como salir del paso y obtener el valor deseado. Tenía un campo númerico al que necesitaba devolverlo como una cadena de caracteres, el campo podia contener hasta dos dígitos, por tanto, si era de un solo digito anteponer el número 0, de tal modo que quede así:
01
02
03
…
09
10
11
…
99
La solución que encontré, buscando en la ayuda de SQLServer, SQL Server Books Online, fue usar RIGHT como sigue:
SELECT right( '00' + cast( 8 AS varchar(2)), 2 )
Que lo que hace es:
- Convertir el número a una cadena de caracteres y luego,
- Concatenarle la cadena de ‘00‘ para después,
- Obtener sólo la cantidad de caracteres que necesitamos, en nuestro caso 2.
Y eso es todo…
Dudas y Comentarios, un poco mas abajo.



Excelente muchas gracias.
resulta perfect
no pasa nada, no funca para todo !!!!!….
Justo estaba buscando esto!
Thxs!
exelente.. esto ha resuelto mi problema!!
a que numero de cuenta puedo depositar los dolares que me he ganado con esta solucion__?? jeje
Excelente, funciona perfecto
Hola
Una duda, en que parte defino el nombre del campo
Gracias
Ya lo descubri.
Muchas gracias, justo lo que necesitaba
excelente, siempre es bueno encontrar este tipo de informacion gracias a gente como ustedes. saludos
GRACIAS JUSTO LO QUE NECESITABA!
It works perfect with a fix and explanation:
For instance, I wanted to get a field and pad it with 5 zeros.
SELECT right( ’00000′ + cast( fieldToPad AS varchar(5)), 5 )
There you go…
Exelente Perfecto adjunto como me quedo este fumada jeje..
Select cl.nombre_corto,o.responsable,*,CAST( cast(year(fecha_docto) as Varchar(4)) + ” + right( ’00′ + cast( cast(m.mes as Varchar(2)) AS varchar(2)), 2 ) as int) as Fecha, mes_nombre + ‘ ‘ + cast(year(fecha_docto) as varchar(4)) as aqui
Gracias.. :-)
Gracias,
Hola, y en este caso como se haria?
Tengo un campo que maneja numeros del 1 al 1000 por desirlo asi
y al hacer la consulta quiero agregar a los primeros nueve nadamas un cero a la izquierda sin que afecte alos demas..
01
02
03..
99
100
101…
1000
1001
Se me ocurre, hacer uso del CASE, y dentro de la condicion WHEN determinar con LEN la longitud del campo, en caso de tener un digito, hacer el LPAD (lo que menciono en el post) de otro modo, solo pasar el campo directo.
1Saludo