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

select a un campo de una tabla por partes

Estas en el tema de select a un campo de una tabla por partes en el foro de Oracle en Foros del Web. Buen dia tengo una pregunta tenco una tabla tcuentas, dond uno de los campos nombre y ahi me guarda el nombre completo lo que quiero ...
  #1 (permalink)  
Antiguo 22/03/2012, 11:32
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 2 meses
Puntos: 1
Pregunta select a un campo de una tabla por partes

Buen dia tengo una pregunta tenco una tabla tcuentas, dond uno de los campos
nombre y ahi me guarda el nombre completo lo que quiero es lo siguiente:
Nombre: Sandra Maria Muente Castro quiero hacer un select a esa tabla y sacar por partes el nombre Sandra, Maria, Muente, Castro para poder mostrar en un formulario
1er Nombre: Sandra
2do Nombre: Maria
Apellido Paterno: Muente
Apellido Materno: Castro

Como seria mi select??? ...gracias
  #2 (permalink)  
Antiguo 22/03/2012, 14:15
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: select a un campo de una tabla por partes

Haz un bucle, busca el primer espacio en blanco con SUBSTR-INSTR(' ') y así hasta que el INSTR te devuelva 0
  #3 (permalink)  
Antiguo 23/03/2012, 10:02
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 17 años, 9 meses
Puntos: 34
Respuesta: select a un campo de una tabla por partes

Hola!

Hay funciones que te convienten una cadena en un array detectando un determinado caracter para cambiar de elemento, el punto es que mas que nada necesitas realizar una depuracion de la informacion, hay nombres sobre los cuales no vas a poder realizar esta operacion ya que llevan espacios en el nombre o el apellido como "De La Paz", "Teresa de Jesus" y otros mas simples, te recomiendo que depures la informacion de tu base de datos creando los campos necesarios, si es mucho trabajo y dependera de que tan grande es tu base de datos pero a futuro te ahorrara muchos problemas.

Saludos.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #4 (permalink)  
Antiguo 25/03/2012, 22:04
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: select a un campo de una tabla por partes

es imposible poder modificar la base de datos, porq es de la empresa en donde estoy y es demasiada grande!! segun lo que investigo la funcion INSTR solo me devuelve las posiciones, pero yo quiero los nombres alguien me podria dar un ejemplo, porfa!!!
  #5 (permalink)  
Antiguo 26/03/2012, 05:54
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: select a un campo de una tabla por partes

Joder macho, te ahogas en un vaso de agua, no te voy a poner ningún ejemplo porque así no aprendes, te lo repito :

Buscas ( y capturas ) la primera posición de un espacio en blanco con INSTR y con eso haces la substr de la primera posición a la que te ha devuelto el INSTR, luego de la posición del instr haces otro instr hasta el siguiente blanco y así hasta que el INSTR te devuelva cero ( no hay mas espacios en blanco )
  #6 (permalink)  
Antiguo 26/03/2012, 14:16
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: select a un campo de una tabla por partes

Ejemplo tengo una tabla llamada persona y en la columna nombrecompleto tengo el nombre y apellidos juntos, aqui te dejo un pequeño ejemplo. Nombre en una columna y apellido en la otra

Cita:
SELECT SUBSTR(nombrecompleto,INSTR(nombrecompleto,',')+1) || ' ' ||SUBSTR(nombrecompleto,0,INSTR(nombrecompleto,',' )-1)
FROM persona;
A partir de aqui esta en tus manos
  #7 (permalink)  
Antiguo 29/03/2012, 08:41
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: select a un campo de una tabla por partes

Gracias por el aporte, estoy probando con las ideas que me dieron.....
  #8 (permalink)  
Antiguo 10/04/2012, 10:51
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: select a un campo de una tabla por partes

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!!!

Etiquetas: partes, select, tabla, formulario, 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 15:12.