Corregir Cadenas

30/05/2006 - 01:22 por Pablo Rodríguez | Informe spam
Hola, cómo expresé en mi anterior post, me veo en la necesidad de corregir
ciertos campos, convertir sus contenido a Versales, o sea primera letra
mayúscula y el resto minúscula, pero pueden haber más de una palabra en el
campo... llegué a esta solución, pero tengo problemas de sintaxis..
espero que alguien me pueda decir cuál es el error

CREATE FUNCTION fnNormalizarNombres (@Nombre nvarchar(100)) RETURNS
nvarchar(100)
AS
BEGIN

DECLARE @Norm nvarchar(100);

IF CHARINDEX(' ', @Nombre) > 0
BEGIN
SET @Norm = (
UPPER(SUBSTRING(@Nombre, 1 ,1 )) +
LOWER(SUBSTRING(@Nombre, 2 ,CHARINDEX(' ', @Nombre)-1 )) + ' ' +
UPPER(SUBSTRING(@Nombre, CHARINDEX(' ', @Nombre)+1 ,1 )) +
LOWER(SUBSTRING(@Nombre, CHARINDEX(' ', @Nombre)+2 ,LEN (
@Nombre )))
END
ELSE
BEGIN
SET @Norm = (SELECT(UPPER(SUBSTRING(@Nombre, 1 ,1)) + SUBSTRING(@Nombre,
2, LEN (@Nombre ))))
END
RETURN @Norm
END
GO
 

Leer las respuestas

#1 Isaias
30/05/2006 - 01:54 | Informe spam
Pablo

Lo que esperas es:

juan carlos armando garcia de los santos

Es:

Juan Carlos Armando Garcia De Los Santos

¿Esto es?
Saludos
IIslas


"Pablo Rodríguez" escribió:

Hola, cómo expresé en mi anterior post, me veo en la necesidad de corregir
ciertos campos, convertir sus contenido a Versales, o sea primera letra
mayúscula y el resto minúscula, pero pueden haber más de una palabra en el
campo... llegué a esta solución, pero tengo problemas de sintaxis..
espero que alguien me pueda decir cuál es el error

CREATE FUNCTION fnNormalizarNombres (@Nombre nvarchar(100)) RETURNS
nvarchar(100)
AS
BEGIN

DECLARE @Norm nvarchar(100);

IF CHARINDEX(' ', @Nombre) > 0
BEGIN
SET @Norm = (
UPPER(SUBSTRING(@Nombre, 1 ,1 )) +
LOWER(SUBSTRING(@Nombre, 2 ,CHARINDEX(' ', @Nombre)-1 )) + ' ' +
UPPER(SUBSTRING(@Nombre, CHARINDEX(' ', @Nombre)+1 ,1 )) +
LOWER(SUBSTRING(@Nombre, CHARINDEX(' ', @Nombre)+2 ,LEN (
@Nombre )))
END
ELSE
BEGIN
SET @Norm = (SELECT(UPPER(SUBSTRING(@Nombre, 1 ,1)) + SUBSTRING(@Nombre,
2, LEN (@Nombre ))))
END
RETURN @Norm
END
GO



Preguntas similares