SQL - Urgente!!!!Separa nombre de apellidos

 
Vista:

Urgente!!!!Separa nombre de apellidos

Publicado por Veronik (1 intervención) el 21/08/2007 18:40:39
Hola!!!

Soy nueva en esto de SQL mi problema es el siguiente:

En una tabla tengo una columna con todo el nombre completo ejemplo:
Laura Veronica Zaldivar Guerrero

Lo que tengo k hacer es Separa por columna es decir
Nombre : Laura
Nombre2: Veronica
Apellido Paterno: Zaldivar
Apellido MAterno: Guerrero

Cómo le puedo hacer para separarlo sya lo intente conmo sigue

substr(UPPER(NVL(pap.middle_names,' ')),1,(INSTR(pap.middle_names,' '))) NOMBRE, substr(UPPER(NVL(pap.middle_names,' ')),(INSTR(pap.middle_names,' '))) NOMBRE2,

pro si el nombre solo es Laura me lo deja en la columna Nombre2
Nombre:
Nombre2:Laura

Se los agradezco de antemano

Es super urgente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Urgente!!!!Separa nombre de apellidos

Publicado por Isaias (5072 intervenciones) el 22/08/2007 01:23:29
Veronik

No se puede, SQL SERVER deberia tener una BASE donde sustentar su formula de separacion y hablando de NOMBRES, no se puede, imaginate tu.

JOSE JAVIER EDUARDO DE LA CRUZ Y GONGORA

Este es de "TELENOVELA"

DE LOS SANTOS HERMOSILLO MARIA DE LOS ANGELES

Este tambien es de "desesperar".

No hay forma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Urgente!!!!Separa nombre de apellidos

Publicado por jjmobo (1 intervención) el 15/11/2012 14:31:57
Caballero para poder separar una cadena que tiene todo el nombre
primer apellido
segundo apellido
primer nombre
segundo nombre

select
Name
,LEFT((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))))), ISNULL(NULLIF(CHARINDEX(' ', (SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))))))) - 1, -1), LEN((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))))))))
,LEFT((SUBSTRING((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))))), CHARINDEX(' ', (SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))))))) + 1, LEN((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))))))))), ISNULL(NULLIF(CHARINDEX(' ', (SUBSTRING((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))))), CHARINDEX(' ', (SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))))))) + 1, LEN((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))))))))) - 1, -1), LEN((SUBSTRING((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))))), CHARINDEX(' ', (SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))))))) + 1, LEN((SUBSTRING((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) + 1, LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))))))))))))
,LEFT(Name, ISNULL(NULLIF(CHARINDEX(' ', Name) - 1, -1), LEN(Name)))
,LEFT((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))), ISNULL(NULLIF(CHARINDEX(' ', (SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name)))) - 1, -1), LEN((SUBSTRING(Name, CHARINDEX(' ', Name) + 1, LEN(Name))))))
from
CCCCCC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Urgente!!!!Separa nombre de apellidos

Publicado por SEPARADOR (1 intervención) el 21/11/2015 02:41:05
Y cuando el nombre sea por ejemplo:
MARIA DE LA LUZ ROMERO ROMERO el resultado que arroja es: DE LA MARIA
Cómo se puede corregir esto?
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar