SQL - substr sobre otro substr

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 9 puestos en SQL (en relación al último mes)
Gráfica de SQL

substr sobre otro substr

Publicado por Fernando (1 intervención) el 12/03/2018 18:57:18
Buenas tardes, mi duda es la siguiente, tengo un campo con el Nombre, primer apellido y segundo apellido, separados por '.' y lo que quiero es sacar por separado el nombre y los apellidos.

El nombre lo tengo así:

select substr(nombre, 1, locate('.',nombre) - 1) as Nombre

Pero el primer apellido no soy capaz. ¿alguna idea?

Un saludo y gracias.
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

substr sobre otro substr

Publicado por Leonardo Josué (1173 intervenciones) el 12/03/2018 19:57:00
Hola Fernando:

¿Con qué motor de Base de Datos estás trabajando? este dato es muy importante ya que la sintaxis para cada DBMS puede variar, sobre todo para el manejo de funciones de caracteres, como el substring.

Sin este dato es complicado darte una respuesta puntual para tu problema.

Además de decirnos qué motor usas, también puedes incluir algunos datos de ejemplo de tu tabla y a partir de esos datos decirnos qué es lo que esperas obtener como salida. Así será más factible que te podamos ayudar.

Saludos
Leo.
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
sin imagen de perfil
Val: 27
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

substr sobre otro substr

Publicado por Conrado (7 intervenciones) el 13/03/2018 16:31:58
Hola, al menos en Oracle 11 podrías usar expresiones reguales:

SELECT REGEXP_SUBSTR('NOMBRE.APELLIDO', '[^.]+', 1, 1) NOMBRE,
REGEXP_SUBSTR('NOMBRE.APELLIDO', '[^.]+', 1, 2) APELLIDO
FROM dual t;

No se la 10, pero en la 9 no va a funcionar y tendrías que hacer las funciones de parseo de forma manual.
Como dice amigo en otra respuesta. Al no saber en que motor / version estás trabajando, no se puede responder de forma muy exacta.

Salute
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