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

Preguntas similare

Leer las respuestas

#6 BitOne®
30/05/2006 - 03:51 | Informe spam
Como lo prometido es deuda, puedes copiar y pegar al gusto :)
cambiar base si no posees pubs, trabaja sobre cualquier base.


use pubs
go
set nocount on
go
if exists (select name from sysobjects where name = 'IniCapital' And Type = 'FN' )
drop function IniCapital
go
create function IniCapital( @nCadena nvarchar(100))
returns varchar(100)
as
begin

declare @nF Varchar(255)
declare @count integer

set @nf = ''
set @count = 0
set @nCadena = lower(@nCadena)

while charindex(' ',ltrim(rtrim(@nCadena))) > 0
begin

if @count = 0
set @nF = upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
substring(ltrim(rtrim(@nCadena)), 2,charindex(' ',ltrim(@nCadena))-1)
else
begin
if charindex(' ',ltrim(rtrim(@nCadena))) = 0 break
set @nF = @nF + Upper(substring(ltrim(rtrim(@nCadena)), 1,1))+
Substring(ltrim(rtrim(@nCadena)), 2,charindex(' ',ltrim(rtrim(@nCadena)))-1)
end

set @nCadena = Substring(ltrim(rtrim(@nCadena)),charindex(' ',rtrim(ltrim(@nCadena)))+1, len(@nCadena))

set @count = @count + 1
end

set @nF = @nF + Upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
Substring(ltrim(rtrim(@nCadena)), 2,len(@nCadena)) --ltrim(Rtrim(@nCadena))
Return @nF
end
go
print 'Espacio en cualquier parte de la cadena'
Select dbo.IniCapital('ludwin jesus maria del carmen betwoven junior escalante radames ortiz')
go
print 'Espacios al inicio'
Select dbo.IniCapital(' 1 1')
go
print 'Espacios al Final'
Select dbo.IniCapital('1 1 ')
go
print 'Espacios en medio'
Select dbo.IniCapital('1 1')
go
print 'Espacios en blanco'

Select dbo.IniCapital(' ')
go


Saludos,



-
BitOne®

http://www.yocsql.com

-



"BitOne®" escribió en el mensaje news:
tengo tu solución.

Te paso el algoritmo no es el mas eficiente pero
puedes majorarlo, tu lo mejoraras que ahora voy a mi casita,

si en lo que llego no lo has logrado mejorar, pues lo mejoramo entre todos.
:).


alter function IniCapital( @nCadena nvarchar(100))
returns varchar(100)
as
begin

declare @nF Varchar(255)
declare @count integer

set @nf = ''
set @count = 0

while charindex(' ',@nCadena) > 0
begin

if @count = 0
set @nF = upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
substring(ltrim(rtrim(@nCadena)), 2,charindex(' ',ltrim(@nCadena))-1)
else
set @nF = @nF + upper(substring(ltrim(rtrim(@nCadena)), 1,1))
+substring(ltrim(rtrim(@nCadena)), 2,charindex('
',ltrim(rtrim(@nCadena)))-1)

set @nCadena = substring(ltrim(rtrim(@nCadena)), charindex('
',rtrim(ltrim(@nCadena)))+1, len(@nCadena))

set @count = @count + 1
end

Return @nF

end

Prueba esta que esta funcional.

Ha sido testeada con la siguiente cadena:

select dbo.IniCapital('ludwin jesus maria del carmen betwoven
junior escalante radames ortiz')


Saludos,

BitOne®
www.yocsql.com





"Pablo Rodríguez" wrote in message
news:
> Gracias por lo del paréntesis, ahora logré hacerlo funcionar,
> y noté lo que me dices de más de un nombre, así que voy a volver a
> elaborarlo...
>
>
> Saludos!
>
>
> "BitOne®" escribió en el mensaje
> news:%
> > lo primero es que solo te falta un parentesis, y lo segundo es que este
> > algoritmo no es lo sufucientemente bueno para
> > esto que intentas hacer, pues si aparece una persona con tres nombres no
> > dara resultado.
> >
> > ejemplo :
> >
> > supongamos que una persona se llama
> >
> > jose maria del carmen perez montilla.
> >
> > Este algoritmo que intentas implementar no te dara el resultado
esperado,
> > por lo tanto debes de plasmarlo bien
> > y luego escribir el codigo,
> >
> > y como te dije al principio es solo un parentesis antes del
> > end que te falta
> >
> > saludos.
> >
> > BitOne®
> >
> >
> >
> >
> > "Isaias" wrote in message
> > news:
> >> 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
> >> >
> >> >
> >> >
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Carlos Sacristán
30/05/2006 - 08:27 | Informe spam
Aporto otra solución. No es mía, pero tampoco recuerdo de quién es, lo
siento.


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Pablo Rodríguez" escribió en el mensaje
news:#
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






begin 666 funcion.sql
M0U)%051%($953D-424].(&1B;RYF;E]0<FEM97)A36%Y=7,@*$!P87(@5D%2
M0TA!,# P*2D-"E)%5%523E,@5D%20TA!,# P*0T*05,-"D)%1TE.
M#0H-"D1%0TQ!&-O=6YT97(@05,@24Y4( T*1$5#3$%212! ;&%S=&-H
M87(@05,@5D%20TA!*0T*#&-O=6YT97(],0T*4T54($!L87-T
M8VAA<CTG("<-"@T*5TA)3$&-O=6YT97(@/#T@;&5N*$!P87(I#0H)0D5'
M24X)#0H)"4E&($!L87-T8VAA<CTG("<-"@D)"4)%1TE.#0H)"0D)4T54($!P
M87(](%-4549&*$!P87(L($!C;W5N=&5R+" Q+"!54%!%4BA354)35%))3D<H
M0'!A<BQ 8V]U;G1E<BPQ*2DI#0H)"0D)4T54($!L87-T8VAA<CU354)35%))
M3D<H0'!A<BQ 8V]U;G1E<BPQ*0T*"0D)"5-%5"! 8V]U;G1E<CU 8V]U;G1E
M<BLQ#0H)"0E%3D0-"@D)14Q310T*"0D)0D5'24X-"@D)"0E314Q%'!A
M'!A&-O=6YT97(L(#$L(&QO=V5R*'-U8G-T<FEN9RA
M<&%R+$!C;W5N=&5R+#$I*2D-"@D)"&QA<W1C:&%R/7-U8G-T<FEN
M9RA <&%R+$!C;W5N=&5R+#$I#0H)"0D)4T54($!C;W5N=&5R/4!C;W5N=&5R
K*S$-"@D)"45.1 D)"0D-"@D)14Y$#'!A<@T*14Y$#0H-"@``
`
end
Respuesta Responder a este mensaje
#8 Alejandro Mesa
30/05/2006 - 16:39 | Informe spam
Solo para formar parte del hilo:

create function dbo.IniCapital( @nCadena nvarchar(100))
returns nvarchar(100)
as
begin

declare @i int
declare @s1 nvarchar(101)
declare @s2 nchar(2)

set @s1 = N' ' + lower(@nCadena)
set @i = charindex(N' ', @s1)

while @i > 0
begin
set @s2 = substring(@s1, @i, 2)

if len(@s2) > 0 set @s1 = stuff(@s1, @i, 2, upper(@s2))

set @i = charindex(N' ', @s1, @i + 1)
end

return substring(@s1, 2, 100)

end
go


AMB


"BitOne®" wrote:

Como lo prometido es deuda, puedes copiar y pegar al gusto :)
cambiar base si no posees pubs, trabaja sobre cualquier base.


use pubs
go
set nocount on
go
if exists (select name from sysobjects where name = 'IniCapital' And Type = 'FN' )
drop function IniCapital
go
create function IniCapital( @nCadena nvarchar(100))
returns varchar(100)
as
begin

declare @nF Varchar(255)
declare @count integer

set @nf = ''
set @count = 0
set @nCadena = lower(@nCadena)

while charindex(' ',ltrim(rtrim(@nCadena))) > 0
begin

if @count = 0
set @nF = upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
substring(ltrim(rtrim(@nCadena)), 2,charindex(' ',ltrim(@nCadena))-1)
else
begin
if charindex(' ',ltrim(rtrim(@nCadena))) = 0 break
set @nF = @nF + Upper(substring(ltrim(rtrim(@nCadena)), 1,1))+
Substring(ltrim(rtrim(@nCadena)), 2,charindex(' ',ltrim(rtrim(@nCadena)))-1)
end

set @nCadena = Substring(ltrim(rtrim(@nCadena)),charindex(' ',rtrim(ltrim(@nCadena)))+1, len(@nCadena))

set @count = @count + 1
end

set @nF = @nF + Upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
Substring(ltrim(rtrim(@nCadena)), 2,len(@nCadena)) --ltrim(Rtrim(@nCadena))
Return @nF
end
go
print 'Espacio en cualquier parte de la cadena'
Select dbo.IniCapital('ludwin jesus maria del carmen betwoven junior escalante radames ortiz')
go
print 'Espacios al inicio'
Select dbo.IniCapital(' 1 1')
go
print 'Espacios al Final'
Select dbo.IniCapital('1 1 ')
go
print 'Espacios en medio'
Select dbo.IniCapital('1 1')
go
print 'Espacios en blanco'

Select dbo.IniCapital(' ')
go


Saludos,



-
BitOne®

http://www.yocsql.com

-



"BitOne®" escribió en el mensaje news:
> tengo tu solución.
>
> Te paso el algoritmo no es el mas eficiente pero
> puedes majorarlo, tu lo mejoraras que ahora voy a mi casita,
>
> si en lo que llego no lo has logrado mejorar, pues lo mejoramo entre todos.
> :).
>
>
> alter function IniCapital( @nCadena nvarchar(100))
> returns varchar(100)
> as
> begin
>
> declare @nF Varchar(255)
> declare @count integer
>
> set @nf = ''
> set @count = 0
>
> while charindex(' ',@nCadena) > 0
> begin
>
> if @count = 0
> set @nF = upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
> substring(ltrim(rtrim(@nCadena)), 2,charindex(' ',ltrim(@nCadena))-1)
> else
> set @nF = @nF + upper(substring(ltrim(rtrim(@nCadena)), 1,1))
> +substring(ltrim(rtrim(@nCadena)), 2,charindex('
> ',ltrim(rtrim(@nCadena)))-1)
>
> set @nCadena = substring(ltrim(rtrim(@nCadena)), charindex('
> ',rtrim(ltrim(@nCadena)))+1, len(@nCadena))
>
> set @count = @count + 1
> end
>
> Return @nF
>
> end
>
> Prueba esta que esta funcional.
>
> Ha sido testeada con la siguiente cadena:
>
> select dbo.IniCapital('ludwin jesus maria del carmen betwoven
> junior escalante radames ortiz')
>
>
> Saludos,
>
> BitOne®
> www.yocsql.com
>
>
>
>
>
> "Pablo Rodríguez" wrote in message
> news:
> > Gracias por lo del paréntesis, ahora logré hacerlo funcionar,
> > y noté lo que me dices de más de un nombre, así que voy a volver a
> > elaborarlo...
> >
> >
> > Saludos!
> >
> >
> > "BitOne®" escribió en el mensaje
> > news:%
> > > lo primero es que solo te falta un parentesis, y lo segundo es que este
> > > algoritmo no es lo sufucientemente bueno para
> > > esto que intentas hacer, pues si aparece una persona con tres nombres no
> > > dara resultado.
> > >
> > > ejemplo :
> > >
> > > supongamos que una persona se llama
> > >
> > > jose maria del carmen perez montilla.
> > >
> > > Este algoritmo que intentas implementar no te dara el resultado
> esperado,
> > > por lo tanto debes de plasmarlo bien
> > > y luego escribir el codigo,
> > >
> > > y como te dije al principio es solo un parentesis antes del
> > > end que te falta
> > >
> > > saludos.
> > >
> > > BitOne®
> > >
> > >
> > >
> > >
> > > "Isaias" wrote in message
> > > news:
> > >> 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
> > >> >
> > >> >
> > >> >
> > >
> > >
> >
> >
>
>

Respuesta Responder a este mensaje
#9 Pablo Rodríguez
30/05/2006 - 22:40 | Informe spam
Gracias!


"BitOne®" escribió en el mensaje
news:%
Como lo prometido es deuda, puedes copiar y pegar al gusto :)
cambiar base si no posees pubs, trabaja sobre cualquier base.


use pubs
go
set nocount on
go
if exists (select name from sysobjects where name = 'IniCapital' And Type =
'FN' )
drop function IniCapital
go
create function IniCapital( @nCadena nvarchar(100))
returns varchar(100)
as
begin

declare @nF Varchar(255)
declare @count integer

set @nf = ''
set @count = 0
set @nCadena = lower(@nCadena)

while charindex(' ',ltrim(rtrim(@nCadena))) > 0
begin

if @count = 0
set @nF = upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
substring(ltrim(rtrim(@nCadena)), 2,charindex('
',ltrim(@nCadena))-1)
else
begin
if charindex(' ',ltrim(rtrim(@nCadena))) = 0 break
set @nF = @nF + Upper(substring(ltrim(rtrim(@nCadena)), 1,1))+
Substring(ltrim(rtrim(@nCadena)), 2,charindex('
',ltrim(rtrim(@nCadena)))-1)
end

set @nCadena = Substring(ltrim(rtrim(@nCadena)),charindex('
',rtrim(ltrim(@nCadena)))+1, len(@nCadena))

set @count = @count + 1
end

set @nF = @nF + Upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
Substring(ltrim(rtrim(@nCadena)),
2,len(@nCadena)) --ltrim(Rtrim(@nCadena))
Return @nF
end
go
print 'Espacio en cualquier parte de la cadena'
Select dbo.IniCapital('ludwin jesus maria del carmen betwoven junior
escalante radames ortiz')
go
print 'Espacios al inicio'
Select dbo.IniCapital(' 1 1')
go
print 'Espacios al Final'
Select dbo.IniCapital('1 1 ')
go
print 'Espacios en medio'
Select dbo.IniCapital('1 1')
go
print 'Espacios en blanco'

Select dbo.IniCapital(' ')
go


Saludos,



-
BitOne®

http://www.yocsql.com

-



"BitOne®" escribió en el mensaje
news:
tengo tu solución.

Te paso el algoritmo no es el mas eficiente pero
puedes majorarlo, tu lo mejoraras que ahora voy a mi casita,

si en lo que llego no lo has logrado mejorar, pues lo mejoramo entre
todos.
:).


alter function IniCapital( @nCadena nvarchar(100))
returns varchar(100)
as
begin

declare @nF Varchar(255)
declare @count integer

set @nf = ''
set @count = 0

while charindex(' ',@nCadena) > 0
begin

if @count = 0
set @nF = upper(substring(ltrim(rtrim(@nCadena)), 1,1)) +
substring(ltrim(rtrim(@nCadena)), 2,charindex(' ',ltrim(@nCadena))-1)
else
set @nF = @nF + upper(substring(ltrim(rtrim(@nCadena)), 1,1))
+substring(ltrim(rtrim(@nCadena)), 2,charindex('
',ltrim(rtrim(@nCadena)))-1)

set @nCadena = substring(ltrim(rtrim(@nCadena)), charindex('
',rtrim(ltrim(@nCadena)))+1, len(@nCadena))

set @count = @count + 1
end

Return @nF

end

Prueba esta que esta funcional.

Ha sido testeada con la siguiente cadena:

select dbo.IniCapital('ludwin jesus maria del carmen betwoven
junior escalante radames ortiz')


Saludos,

BitOne®
www.yocsql.com





"Pablo Rodríguez" wrote in message
news:
> Gracias por lo del paréntesis, ahora logré hacerlo funcionar,
> y noté lo que me dices de más de un nombre, así que voy a volver a
> elaborarlo...
>
>
> Saludos!
>
>
> "BitOne®" escribió en el mensaje
> news:%
> > lo primero es que solo te falta un parentesis, y lo segundo es que
> > este
> > algoritmo no es lo sufucientemente bueno para
> > esto que intentas hacer, pues si aparece una persona con tres nombres
> > no
> > dara resultado.
> >
> > ejemplo :
> >
> > supongamos que una persona se llama
> >
> > jose maria del carmen perez montilla.
> >
> > Este algoritmo que intentas implementar no te dara el resultado
esperado,
> > por lo tanto debes de plasmarlo bien
> > y luego escribir el codigo,
> >
> > y como te dije al principio es solo un parentesis antes del
> > end que te falta
> >
> > saludos.
> >
> > BitOne®
> >
> >
> >
> >
> > "Isaias" wrote in message
> > news:
> >> 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
> >> >
> >> >
> >> >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida