conseguir la cadena '00000001' del entero 1 mediante cast o convert

30/09/2003 - 08:52 por Sanchez Arnoletto Martin Rodrigo | Informe spam
Estimado grupo:

Existe alguna manera de obtener los ceros iniciales de una cadena con alguna
instruccion mas simple que STUFF?
Alguna forma usando el CAST.
Esta es una de las instrucciones que debo hacer:

STUFF('0000000000',11-LEN(RTRIM(cast(presupuesto.modificado as
char(10)))),LEN(RTRIM(cast(presupuesto.modificado as
char(10))),RTRIM(cast(presupuesto.modificado as char(10))))

Esto anda pero es demasiado largo para obtener solo un campo , ademas me lo
levanta como si fuera un memo( no se porque)

Hay alguna forma mas simple?

Gracias desde ya


Ing. Sanchez Arnoletto Martin Rodrigo
messenger: mrsarnoletto@hotmail.com
email: mrsarnoletto@dixisargentina.com.ar

Preguntas similare

Leer las respuestas

#1 Miguel Egea
30/09/2003 - 09:45 | Informe spam
Yo lo hago así
select right('000000000'+ cast(11 as varchar(100)),11)


Saludos Cordiales
=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==

"Sanchez Arnoletto Martin Rodrigo" escribió en el
mensaje news:
Estimado grupo:

Existe alguna manera de obtener los ceros iniciales de una cadena con


alguna
instruccion mas simple que STUFF?
Alguna forma usando el CAST.
Esta es una de las instrucciones que debo hacer:

STUFF('0000000000',11-LEN(RTRIM(cast(presupuesto.modificado as
char(10)))),LEN(RTRIM(cast(presupuesto.modificado as
char(10))),RTRIM(cast(presupuesto.modificado as char(10))))

Esto anda pero es demasiado largo para obtener solo un campo , ademas me


lo
levanta como si fuera un memo( no se porque)

Hay alguna forma mas simple?

Gracias desde ya


Ing. Sanchez Arnoletto Martin Rodrigo
messenger:
email:



Respuesta Responder a este mensaje
#2 Sanchez Arnoletto Martin Rodrigo
30/09/2003 - 10:16 | Informe spam
Gracias Miguel

"Miguel Egea" escribió en el
mensaje news:
Yo lo hago así
select right('000000000'+ cast(11 as varchar(100)),11)


Saludos Cordiales
=> Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==>

"Sanchez Arnoletto Martin Rodrigo" escribió en


el
mensaje news:
> Estimado grupo:
>
> Existe alguna manera de obtener los ceros iniciales de una cadena con
alguna
> instruccion mas simple que STUFF?
> Alguna forma usando el CAST.
> Esta es una de las instrucciones que debo hacer:
>
> STUFF('0000000000',11-LEN(RTRIM(cast(presupuesto.modificado as
> char(10)))),LEN(RTRIM(cast(presupuesto.modificado as
> char(10))),RTRIM(cast(presupuesto.modificado as char(10))))
>
> Esto anda pero es demasiado largo para obtener solo un campo , ademas me
lo
> levanta como si fuera un memo( no se porque)
>
> Hay alguna forma mas simple?
>
> Gracias desde ya
>
>
> Ing. Sanchez Arnoletto Martin Rodrigo
> messenger:
> email:
>
>
>


Respuesta Responder a este mensaje
#3 Mauricio Sthandier R.
30/09/2003 - 17:20 | Informe spam
puedes usar REPLICATE también con el largo de la cadena y el largo del
campo. LEN(54321) da 5.
Pero la instrucción de Miguel es más sencilla.

Fear
is temporary.
Pride
is forever.

"Sanchez Arnoletto Martin Rodrigo" escribió en el
mensaje news:
Estimado grupo:

Existe alguna manera de obtener los ceros iniciales de una cadena con


alguna
instruccion mas simple que STUFF?
Alguna forma usando el CAST.
Esta es una de las instrucciones que debo hacer:

STUFF('0000000000',11-LEN(RTRIM(cast(presupuesto.modificado as
char(10)))),LEN(RTRIM(cast(presupuesto.modificado as
char(10))),RTRIM(cast(presupuesto.modificado as char(10))))

Esto anda pero es demasiado largo para obtener solo un campo , ademas me


lo
levanta como si fuera un memo( no se porque)

Hay alguna forma mas simple?

Gracias desde ya

Ing. Sanchez Arnoletto Martin Rodrigo
messenger:
email:
Respuesta Responder a este mensaje
#4 Eusebio M
01/10/2003 - 20:39 | Informe spam
puede que te sirvan las siguientes funciones(si tienes SQL2000)

ejemplo:

select dbo.PadL(1,8,'0') retorna 00000001
select dbo.PadR(1,8,'0') -- retorna 10000000

CREATE FUNCTION PadL (@Valor varchar(100) , @LongCampo int , @CharRelleno
char(1) )
RETURNS varchar(1000)
AS
BEGIN
DECLARE @CadenaConRelleno varchar(1000)
SET @CadenaConRelleno= right(isnull(replicate(@CharRelleno, @LongCampo -
isnull(len(@Valor),0)),'') + isnull(@Valor,''),@LongCampo)
RETURN(@CadenaConRelleno)
END


create FUNCTION PadR (@Valor varchar(100) , @LongCampo int , @CharRelleno
char(1) )
RETURNS varchar(1000)
AS
BEGIN
DECLARE @CadenaConRelleno varchar(1000)
SET @CadenaConRelleno= left( isnull(@Valor,'') +
isnull(replicate(@CharRelleno, @LongCampo - isnull(len(@Valor),0)),'')
,@LongCampo)
RETURN(@CadenaConRelleno)
END
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida