Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Separacion de primer y segundo nombre a partir de un solo campo

Estas en el tema de Separacion de primer y segundo nombre a partir de un solo campo en el foro de SQL Server en Foros del Web. Hola a todos, estoy construyendo una cadena de texto, y necesito extraer del campo nombre dos datos, primer y segundo nombre, ej. Jose Luis ---->este ...
  #1 (permalink)  
Antiguo 12/10/2009, 11:27
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Separacion de primer y segundo nombre a partir de un solo campo

Hola a todos,

estoy construyendo una cadena de texto, y necesito extraer del campo nombre
dos datos, primer y segundo nombre, ej.

Jose Luis ---->este es el campo nombre

y necesito extraerlo asi

Jose Luis

es decir Jose rellenando veinte espacios a la derecha y Luis es el mismo caso

como le hago para indicarle a la cadena que Jose Luis lo parta a partir de que encuentra un espacio en blanco


Muchas gracias a todos por su ayuda
  #2 (permalink)  
Antiguo 12/10/2009, 14:22
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Separacion de primer y segundo nombre a partir de un solo campo

para buscar el espacio CHARINDEX(), de ahi, es planchar y coser, con LEFT y RIGHT
  #3 (permalink)  
Antiguo 13/10/2009, 19:21
 
Fecha de Ingreso: abril-2009
Mensajes: 6
Antigüedad: 15 años
Puntos: 0
Respuesta: Separacion de primer y segundo nombre a partir de un solo campo

Muchas gracias queda muy bien para el primer nombre con la siguiente funcion

CREATE FUNCTION fnCortarNombres
(@Texto varchar(50)

)
RETURNS varchar(100)
--//WITH ENCRYPTION
AS BEGIN
DECLARE
@Resultado varchar(100),
@spaceindex Int

SET @Texto =RTRIM(LTRIM(@Texto))
SET @SpaceIndex = CHARINDEX(' ', @Texto)
SELECT @Resultado = LEFT(@Texto, @SpaceIndex - 1)

RETURN (@Resultado)

END
GO

y con la siguiente condicion en la cadena de texto

CASE WHEN CHARINDEX (' ',ndip.nombre)>0 then dbo.fnRellenarEspaciosDerecha(dbo.fnCortarNombres( ndip.Nombre),20) else dbo.fnRellenarEspaciosDerecha(ndip.nombre,20)end
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:18.