Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 05-ene-2008, 11:58   #1 (permalink)
fbaudelet ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 8
Separar texto y numero de un campo a otro campo

Hola
Estoy buscando la forma de separar en dos columnas el valor de una columna ( o sea el valor de un campo en dos campos por cada fila)
Esto lo quiero hacer mediante una vista.
Basicamente el campo de origen contiene una cadena compuesta por letras y numeros y esto lo quiero divido en dos campos. El primero con las letras y el segundo con los numeros

Ejemplo:
Datos del campo de origen
ColumnaA
ghga1jk231kl121
212jkkj21jkj
12313
pojnjk12123

Resultado deseado
ColumaB........................ColumnaC
ghgajkkl........................1231121
jkkjjkj............................21221
.....................................12313
pojnjk............................12123
fbaudelet está desconectado   Responder Citando
Antiguo 07-ene-2008, 05:46   #2 (permalink)
Sir Matrix está en el buen camino
 
Avatar de Sir Matrix
 
Fecha de Ingreso: noviembre-2002
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.248
Enviar un mensaje por ICQ a Sir Matrix
Re: Separar texto y numero de un campo a otro campo

Hola, sería mucho más simple si tuvieras un caracter delimitador entre los números y el texto, o bien que el texto o el número tuvieran un número definido de caracteres (para exstraerlos con la función substring o charindex). Será que el foro se comió los espacios??

De otra manera no se me ocurre más que hacer un montón de cases testeando cada caracter hasta identificar la parte numerica y la parte texto :P

saluodos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen

Última edición por Sir Matrix; 07-ene-2008 a las 05:56.
Sir Matrix está desconectado   Responder Citando
Antiguo 07-ene-2008, 06:53   #3 (permalink)
fbaudelet ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 8
Re: Separar texto y numero de un campo a otro campo

Juastamente no tengo un caracter delimitador o una cantidad espesifica de espacio.
Realmente en el campo su usa para escribir el telefono del cliente y otros datos.
Por eso debo recuperar solo los caracter numericos en otra columna que seria el telefono.
fbaudelet está desconectado   Responder Citando
Antiguo 07-ene-2008, 07:19   #4 (permalink)
Sir Matrix está en el buen camino
 
Avatar de Sir Matrix
 
Fecha de Ingreso: noviembre-2002
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.248
Enviar un mensaje por ICQ a Sir Matrix
Re: Separar texto y numero de un campo a otro campo

Hola, siempre y cuando no exista números en la parte del texto puede hacerse una función que testee cada caracter y determine donde empiezan los numeros

Aca te dejo una funcion que obtiene el telefono desde un varchar de 6 caracteres
Código PHP:
ALTER FUNCTION fn_BuscaFono  (@str varchar(6))
RETURNS VARCHAR (6)
AS
BEGIN
--DECLARE @STR AS VARCHAR(6)
--DECLARE @
INDEX AS TINYINT
--SET @STR='HA8239'
IF ISNUMERIC(SUBSTRING(@STR1,1))=1
   SET 
@INDEX 1
ELSE
   IF 
ISNUMERIC(SUBSTRING(@STR2,1))=1
      SET 
@INDEX 2
   
ELSE
      IF 
ISNUMERIC(SUBSTRING(@STR3,1))=1
         SET 
@INDEX 3
      
ELSE
         IF 
ISNUMERIC(SUBSTRING(@STR4,1))=1
            SET 
@INDEX 4
         
ELSE
            IF 
ISNUMERIC(SUBSTRING(@STR5,1))=1
               SET 
@INDEX 5
            
ELSE
               IF 
ISNUMERIC(SUBSTRING(@STR6,1))=1
                  SET 
@INDEX 6
               
ELSE       
                  RETURN 
NULL

RETURN SUBSTRING(@STR, @INDEX100)
END 
Y bueno, ahí tendrás que agregar más ifs para poder testear cadenas más largas, o tal vez podrías poner un for en lugar de repetir tantas veces el if.

También tendrás que hacer otra función similar para obtener la parte del texto.

Saludos!
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
Sir Matrix está desconectado   Responder Citando
Antiguo 07-ene-2008, 07:19   #5 (permalink)
JLEP ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 5
Re: Separar texto y numero de un campo a otro campo

La idea puede ser que leas toda esa cadena y vayas comparando cuando hay un número lo lleves para la variable que tú quieres o para un campo esta es una manera para hacerlo busca algún comando que te cuente la cadena completa después uno a uno lo comparas si es un número y lo llevas donde tú quieras ....

es una idea espero te sirva

saludos
jose
JLEP está desconectado   Responder Citando
Antiguo 07-ene-2008, 07:29   #6 (permalink)
fbaudelet ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 8
Re: Separar texto y numero de un campo a otro campo

Me gusto la idea de Jose, porque realmente la cantidad de caracter en el campo es grande, ademas entre los numeros a vexes le agregan puntos u otros caracteres.
Ahora la pregunta es como lo hago??
Garcias

Saludos
Franck
fbaudelet está desconectado   Responder Citando
Antiguo 07-ene-2008, 10:54   #7 (permalink)
Sir Matrix está en el buen camino
 
Avatar de Sir Matrix
 
Fecha de Ingreso: noviembre-2002
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.248
Enviar un mensaje por ICQ a Sir Matrix
Re: Separar texto y numero de un campo a otro campo

Hola,
aca dejo una funcion que puede servirte (esta con 100 caracteres pero ahi tu la cambias)

ALTER FUNCTION fn_BuscaNumeros (@str varchar(100))
RETURNS VARCHAR (6)
AS
BEGIN
--DECLARE @STR AS VARCHAR(50)
--SET @STR='HYHYHHA564564568239'

DECLARE @CUENTA AS TINYINT
DECLARE @NUMEROS AS VARCHAR(100)
SET @NUMEROS=''
SET @CUENTA=1

WHILE (@CUENTA < 100)
BEGIN
IF SUBSTRING(@STR, @CUENTA,1) IN ('0','1','2','3','4','5','6','7','8','9')
SET @NUMEROS = @NUMEROS + SUBSTRING(@STR, @CUENTA,1)

SET @CUENTA=@CUENTA+1
END

RETURN @NUMEROS

END

luego tienes que hacer una similar para la parte del texto y las llamas en tu select

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
Sir Matrix está desconectado   Responder Citando
Antiguo 07-ene-2008, 11:40   #8 (permalink)
fbaudelet ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 8
Re: Separar texto y numero de un campo a otro campo

Funciona

Muchisima Gracias
Me sacaste un gran dolor de cabeza
Saludos
Franck
fbaudelet está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 23:44.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93