Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2009
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Descomponer nombre y apellidos

Hola amigos del Club:

Tengo el siguiente problema, cuando diseñamos una BD relativa al personal, creamos un campo llamado nombre donde se registra el nombre completo del empleado incluyendo sus apellidos, cosas naturales de los nombres hispanicos donde hay mas de un nombre y 2 apellidos y donde se usan tanto para el nombre o los apellidos algunos articulos (ej de la Rosa), tengo necesidad de descomponer esto en nombre1, nombre2, apellido1 y apellido2 y no tengo idea de como entrarle a eso, porque la cadena puede tener desde 3 palabras a n dependiendo de los espacios vacios que estan entre las palabras que componen el nombre. Alguna recomendacion para este caso.

Saludos

Luis Garcia
Responder Con Cita
  #2  
Antiguo 15-04-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

El caos no se puede ordenar: si no ya no sería caos. Así pues, si existe algún tipo de orden, por ejemplo, si sabemos que tendremos siempre como separador un espacio en blanco, podremos hacer algo. Si no es así, o si no sabemos bien qué separan los espacios, o detrás o delante de qué espacio habrá un nombre o tal vez un apellido... ¿cómo podría hacerse? Tal vez por aproximación, esto es, arriesgándonos a no conseguir siempre el el resultado correcto. Igual es menester partir de otra base... que la estructura de la base de datos contemplara un campo "nombre", otro "apellidos"...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 15-04-2009
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Descomponer nombre y apellidos

Al principio fui un poco apocaliptico con la consulta, ahora voy a ser mas practico, vamos a imaginarnos que el campo nombre solo tenga 3 palabras y lo tenga que descomponer en nombre, apellido1 y apellido2, que funcion de SQL me permite buscar el espacio en blanco para con SUBSTRING poder resolver el problema o alguna otra variante. Olvidaba estoy trabajando con SQL Server 2000.

Muchas gracias por la respuesta DEC

Saludos

Luis Garcia
Responder Con Cita
  #4  
Antiguo 15-04-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo más práctico sería crear un pequeño programa que asuma que la primera palabra es el nombre y el resto los apellidos, mediante un bucle recorre la tabla y reparte el actual campo en los dos creados a propósito, luego no quedará más remedio que recorrer los registros, una simple rejilla y una Barra de navegación y comprobar los registros a mano puesto que se habrá colado algún Miguel Angel, Ana María, Jose Antonio etc.

Estos casos habrá que cortar y pegar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 15-04-2009
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
con Substring y CharIndex podes descomponer en palabras. Fijate en la ayuda de Transact-SQL para saber como usarlas. Acordate que en SQL Server 2000 podes declarar funciones definidas por el usuario y ahi podes usar variables para hacerte las cosas un poco mas faciles.

Una vez que separaste las palabras podrias ahorrar un poco del trabajo manual si para la carga de los datos tomaron algun estilo para completar los datos, por ejemplo si SIEMPRE cargaron primero los nombres y luego los apellidos, vas a tener que la primer palabra va a ser siempre un nombre, entonces metes en una tabla temporal todas las primeras palabras y vas a tener una tabla con muchos nombres. Luego evaluas si la segunda palabra esta en esa tabla quiere decir que es un nombre (vas a tener algunos problemas con palabras que pueden ser apellidos y nombres, como por ejemplo Rosa y de la Rosa, pero bue' te vas a ahorrar bastante creo)
Espero que se entienda
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
"(nombre + ' ' + apellidos)" no funciona molina669 SQL 9 07-12-2007 16:36:08
apellidos con comillas simples.... ingel Varios 2 05-12-2007 21:05:45
Descomponer un numero con 7 digitos Camilo Varios 3 05-11-2007 21:58:02
Cuidado con los apellidos. marcoszorrilla La Taberna 39 11-07-2007 00:03:17
Unir dos campos (nombre + apellidos) Tomás Impresión 8 09-02-2004 16:56:32


La franja horaria es GMT +2. Ahora son las 17:41:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi