FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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"... |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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:
|
#5
|
||||
|
||||
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 |
|
|
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 |
|