10/12/2009, 22:25
|
| | Fecha de Ingreso: diciembre-2009
Mensajes: 14
Antigüedad: 15 años Puntos: 0 | |
Separar Palabras en cadenas de texto sql server Hola, soy nueva en esto del sql... tengo un conflicto para separar el nombre de los apellidos, en una tabla tengo un campo que trae el nombre con los apellidos juntos y debo de tomar la primer palabra para nombre, la segunda para Apellido Paterno y la tercera para Apellido Materno, esto sin importar si en verdad cada palabra corresponde a ese orden, primero lo resuelvo de esta forma:
-Primero separo el nombre de los apellidos:
Update Tabla set NombreCotitular = LEFT(nombre, ISNULL(NULLIF(CHARINDEX(' ', nombre) - 1, -1), LEN(nombre)))
Update Tabla set Apellidos = SUBSTRING(nombre, CHARINDEX(' ', nombre) + 1, LEN(nombre))
-Despues separo los apellidos
Update tabla set ApellidoPatCotitular = LEFT(Apellidos, ISNULL(NULLIF(CHARINDEX(' ', Apellidos) - 1, -1), LEN(Apellidos)))
Update tabla set ApellidoMatCotitular=SUBSTRING(Apellidos, CHARINDEX(' ', Apellidos) + 1, LEN(Apellidos))
Lo hace bien cuando se tienen solo 3 cadenas, como por ejemplo
Nombre ApellidoPat ApellidoMat
Juan Perez Perez
Pero cuando se tienen más de tres cadenas no se como solo indicarle que para el apellido materno solo tome la segunda palabra de los apellidos hasta el espacio.
¿Me pueden ayudar a agregarle a este update que solo me tome hasta donde se termina la segunda palabra?
Update tabla set ApellidoMatCotitular=SUBSTRING(Apellidos, CHARINDEX(' ', Apellidos) + 1, LEN(Apellidos))
Muchas gracias!!! |