Formatear números con ceros a la izquieda

12/03/2010 - 13:13 por José Antonio Muñoz | Informe spam
Hola al grupo,

¿existe alguna función en Sql Server 2008, parecida a CONVERT o STR, que
convierta un número entero en texto formateado con ceros a la izquieda?

Ejemplo:

El número 23 formateado a 4 dígitos daría como resultado 0023

saludos,
José Antonio Muñoz.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
12/03/2010 - 15:44 | Informe spam
José Antonio Muñoz,

Eso dependera del tamaño final del formato. Por ejemplo si deseas un # con
10 posiciones, entonces puedes usar:

declare @i int;
declare @j int;

set @i = 23;
set @j = 10;

select right(replicate('0', @j) + ltrim(@i), @j);
GO


AMB


"José Antonio Muñoz" wrote:

Hola al grupo,

¿existe alguna función en Sql Server 2008, parecida a CONVERT o STR, que
convierta un número entero en texto formateado con ceros a la izquieda?

Ejemplo:

El número 23 formateado a 4 dígitos daría como resultado 0023

saludos,
José Antonio Muñoz.

.

Respuesta Responder a este mensaje
#2 José Antonio Muñoz
15/03/2010 - 08:43 | Informe spam
Es decir que me podría crear una función, por ejemplo "FormatCero", con el
código que me has puesto de ejemplo ya que sql server no dispone de dicha
función.

saludos,
José Antonio Muñoz.

"Alejandro Mesa" escribió en el
mensaje de noticias
news:
José Antonio Muñoz,

Eso dependera del tamaño final del formato. Por ejemplo si deseas un # con
10 posiciones, entonces puedes usar:

declare @i int;
declare @j int;

set @i = 23;
set @j = 10;

select right(replicate('0', @j) + ltrim(@i), @j);
GO


AMB


"José Antonio Muñoz" wrote:

Hola al grupo,

¿existe alguna función en Sql Server 2008, parecida a CONVERT o STR, que
convierta un número entero en texto formateado con ceros a la izquieda?

Ejemplo:

El número 23 formateado a 4 dígitos daría como resultado 0023

saludos,
José Antonio Muñoz.

.

Respuesta Responder a este mensaje
#3 Miguel Egea
15/03/2010 - 12:16 | Informe spam
Jose Antonio, aunque como te dice Alejandro se puede, no quiere decir que
sea lo adecuado. Si haces eso tienes que devolver un string y no un numero..
igual lo suyo sería que lo hiciese la herramienta cliente y no manipular los
datos..

dicho esto. la función que buscas es esta


use tempdb
go
create function FormateaconCeros (@num int,@cuantosCeros int) returns
nvarchar(100)
as
begin
return right(replicate('0',@cuantosceros)+cast(@num as
nvarchar(100)),@cuantosCeros)
end

select dbo.FormateaConCeros(10,5);
select dbo.FormateaConCeros(5,5)

Saludos Cordiales
Miguel Egea
Solid Quality Mentos
http://www.portalsql.com

"José Antonio Muñoz" escribió en el mensaje de
noticias:#
Es decir que me podría crear una función, por ejemplo "FormatCero", con el
código que me has puesto de ejemplo ya que sql server no dispone de dicha
función.

saludos,
José Antonio Muñoz.

"Alejandro Mesa" escribió en el
mensaje de noticias
news:
José Antonio Muñoz,

Eso dependera del tamaño final del formato. Por ejemplo si deseas un #
con
10 posiciones, entonces puedes usar:

declare @i int;
declare @j int;

set @i = 23;
set @j = 10;

select right(replicate('0', @j) + ltrim(@i), @j);
GO


AMB


"José Antonio Muñoz" wrote:

Hola al grupo,

¿existe alguna función en Sql Server 2008, parecida a CONVERT o STR, que
convierta un número entero en texto formateado con ceros a la izquieda?

Ejemplo:

El número 23 formateado a 4 dígitos daría como resultado 0023

saludos,
José Antonio Muñoz.

.






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida