Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

De un campo varchar pasar unicamete los datos numericos SQL2000

Estas en el tema de De un campo varchar pasar unicamete los datos numericos SQL2000 en el foro de Bases de Datos General en Foros del Web. Hola foro, nuevamente: Tengo una duda sobre SQL 2000 server. Tengo una tabla con un campo varchar y en ese campo hay registros de esta ...
  #1 (permalink)  
Antiguo 21/04/2005, 17:38
Avatar de Carcharhinus  
Fecha de Ingreso: septiembre-2004
Mensajes: 264
Antigüedad: 20 años, 2 meses
Puntos: 0
De un campo varchar pasar unicamete los datos numericos SQL2000

Hola foro, nuevamente:

Tengo una duda sobre SQL 2000 server. Tengo una tabla con un campo varchar y en ese campo hay registros de esta forma: P123456, A1233556, etc. cada registro tiene una letra de inicio, lo que yo quero hacer es pasar ese campo a otra tabla, pero unicamente los datos "numericos" : 123456, 1233556. Hay alguna forma de hacer esto?
Les agradesco su opinion. Gracias...
  #2 (permalink)  
Antiguo 22/04/2005, 19:31
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 6 meses
Puntos: 0
Te tengo buenas y malas noticias...
Se puede hacer, pero cuesta un poquito.
Creería que tenes que hacer un cursor (copiar el ejemplo de sql) donde lo "llenas" con todos los campos alfanumericos y algún ID (supongo).
Entonces una vez que lo tenes llenito, guardas en una variable de la siguiente forma: @numero = convert(int,substring(campo,2,len(campo)). @Numero debe estas declarada como int
Esto te copiaría solo la parte del número y te la pasa a integer.
Luego lo que tenes que hacer es un insert en la tabla a la que lo querias pasar y listo.
Espero que hayas entendido y que te sirva el "pseudo-pseudocódigo" que te puse.
PD: Puede que los parametros del substring esten al reves, fijate en la ayuda si están bien.
__________________
Saludos,

Alejandro. :adios:
  #3 (permalink)  
Antiguo 25/04/2005, 16:00
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Si el campo UNICAMENTE tiene letra en la primera posicion lo haces facilmente con:

SELECT Convert(INT, RIGHT(campo, LEN(campo-1)))
FROM ...
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 26/04/2005, 12:05
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 6 meses
Puntos: 0
Eso es correcto y funciona, pero lo que quería hacer Carcharhinus (creador del thread) era pasarlo a otra tabla, por eso agregué la "complejidad" del Cursor. Lo que estás haciendo ahí es solo mostrando la parte numérica.
__________________
Saludos,

Alejandro. :adios:
  #5 (permalink)  
Antiguo 26/04/2005, 12:41
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 11 meses
Puntos: 0
Para insertar los registros:

INSERT tabla (campo) SELECT Convert(INT, RIGHT(campo, LEN(campo-1)))
FROM ...

Salu2.
  #6 (permalink)  
Antiguo 28/04/2005, 11:30
Avatar de Carcharhinus  
Fecha de Ingreso: septiembre-2004
Mensajes: 264
Antigüedad: 20 años, 2 meses
Puntos: 0
Muchisimas gracias a los 3 creo que la solucion que aplicare sera algo parecido a lo que me propusieron es algo asi
UPDATE 'Tabla'
SET 'Campo'=substring('tabla'.'Campo', 2,len ('Campo')-1) de esta forma asi puedo convertir los datos directamente en la tabla (aunque creo que no me va a convenir ) o realizar la consulta que me proporciona cableh o la de axel mdq...Muchisimas gracias a todos..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:21.