STRING - INT - STRING

02/11/2004 - 21:19 por Mauricio Henao Romero | Informe spam
Hola a todos.

En SQL como hago para convertir un campo STRING (por ej: '00033') a INT ?
sumarle 1 y despues pasarlo de nuevo a STRING con ceros a la izquierda ?

Es decir, si tengo '00033', hago select cast(max(campoSTR) as int) from
table, esto me lo pasa a entero con el valor 33, pero, como hago para ponerlo
STRING de 5 posociones con ceros a la izquierda ? y obtener '00034' ?

Todo esto debo hacerlo en un Store Procedure

Preguntas similare

Leer las respuestas

#1 ulises
02/11/2004 - 22:25 | Informe spam
Puedes usar :

declare @cadena char(5)
set @cadena = '00033'
select right('00000' +
convert(varchar(5),convert(int,@cadena)+1),5)

Saludos,
Ulises

Hola a todos.

En SQL como hago para convertir un campo STRING (por ej:


'00033') a INT ?
sumarle 1 y despues pasarlo de nuevo a STRING con ceros a


la izquierda ?

Es decir, si tengo '00033', hago select cast(max(campoSTR)


as int) from
table, esto me lo pasa a entero con el valor 33, pero,


como hago para ponerlo
STRING de 5 posociones con ceros a la izquierda ? y


obtener '00034' ?

Todo esto debo hacerlo en un Store Procedure

.

Respuesta Responder a este mensaje
#2 BitOne®
20/01/2006 - 16:46 | Informe spam
bien la partesita que te falta es la siguiente

/* Explico el algoritmo
1.- Tomas el campo y lo conviertes a char de la longitud requerida; 5 en
este caso.
2.- Luego Le haces un Trim y LTrim para que corte los espacios en blanco.
3.- Tomas y le replicas tanto ceros como 5 - longitud el campo
4.- Concatenas la cadena y listo.
*/
declare @campostr char(5)
set @campostr = ''

select convert(char(5),replicate('0', 5 -
len(rtrim(convert(char(5),@campoSTR))))+ rtrim(convert(char(5),@campoSTR)))

"ulises" wrote:

Puedes usar :

declare @cadena char(5)
set @cadena = '00033'
select right('00000' +
convert(varchar(5),convert(int,@cadena)+1),5)

Saludos,
Ulises

>Hola a todos.
>
>En SQL como hago para convertir un campo STRING (por ej:
'00033') a INT ?
>sumarle 1 y despues pasarlo de nuevo a STRING con ceros a
la izquierda ?
>
>Es decir, si tengo '00033', hago select cast(max(campoSTR)
as int) from
>table, esto me lo pasa a entero con el valor 33, pero,
como hago para ponerlo
>STRING de 5 posociones con ceros a la izquierda ? y
obtener '00034' ?
>
>Todo esto debo hacerlo en un Store Procedure
>
>.
>

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