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

separar apellidos y nombres con substr y instr, alguna guia

Estas en el tema de separar apellidos y nombres con substr y instr, alguna guia en el foro de Oracle en Foros del Web. Genere este codigo segun las sugerencias Código: select substr(acliente,0,instr(acliente,' ',1,1)) aPaterno, substr(acliente,instr(acliente,' ',1,1) +1 ,instr(acliente,' ',1,2) - instr(acliente,' ',1,1)) aMaterno, substr(acliente,instr(acliente,' ',1,2) +1 ,instr(acliente,' ',1,3) ...
  #1 (permalink)  
Antiguo 10/04/2012, 10:54
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 9 meses
Puntos: 1
Exclamación separar apellidos y nombres con substr y instr, alguna guia

Genere este codigo segun las sugerencias
Código:
select substr(acliente,0,instr(acliente,' ',1,1)) aPaterno,
substr(acliente,instr(acliente,' ',1,1) +1 ,instr(acliente,' ',1,2) - instr(acliente,' ',1,1)) aMaterno,
substr(acliente,instr(acliente,' ',1,2) +1 ,instr(acliente,' ',1,3) - instr(acliente,' ',1,2)) pNombre,
substr(acliente,instr(acliente,' ',1,3) +1,length(acliente) - instr(acliente,' ',1,3)) sNombre
from  tcuentas_ph1
ahi mostraria 4 campor
aPaterno |aMaterno | pNombre | sNombre
Perez Castro Miguel Antonio
Mendez Flores Mendez Flores Luis

El problema es el siguiente, si tengo dos nombres me muestra bien como en la primera fila, pero si tengo solo un nombre me muestra todos los datos en la ultima columna como es en la segundafila en el campo sNombre.
alguien me ayuda con el codigo porfavor!!!
  #2 (permalink)  
Antiguo 13/04/2012, 10:46
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 18 años, 4 meses
Puntos: 34
Respuesta: separar apellidos y nombres con substr y instr, alguna guia

Hola!

Tu problema es complicado, requiere mineria de datos y va a depender de que tan grande sea tu base de datos el trabajo que te cueste corregirla, no hay un script sql magico para resolver este problema, en donde trabajo tenemos un padron con mas de 100,000 clientes y se definio inicialmente que el campo nombre alamcenaria todo.

Puedes intentar separar la informacion como lo estas haciendo, pero te pongo estos casos.

Maria de la luz Perez Sanchez
Pedro de la cruz Ramirez Guzman
Manuel Garcia (Con un solo apellido, si los hay y asi esta en su acta)
Cristina Guadalupe Perez (suponiendo guadalupe es apellido)

y asi hay muchos otros casos, no puedes realizar un script que cubra todo, lo que puedes hacer es un sql generico que te cubra los casos normales (1 nombre y 2 apellidos) , luego otro que te cubra los todavia normales pero diferentes (2 nombres, 2 apellidos) y luego analizar que falta por corregir o extrar o lo que sea que necesites.

Saludos, suerte.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #3 (permalink)  
Antiguo 25/04/2012, 15:29
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: separar apellidos y nombres con substr y instr, alguna guia

gracias por el aporte al final cambie mi tabla ...

Etiquetas: alguna, guia, nombres, select, substr, campos
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 12:15.