[T-SQL] – Convertendo string para CamelCase (Proper Case)

Olá Pessoal,

Quarta feira chuvosa, e hoje precisei converter alguns dados que estavam em caixa alta, para a o formato CamelCase, em um banco de dados SQL Server.

Pesquisei no Google, e encontrei uma função muito bacana, que segue abaixo:

create function ProperCase(@Text as varchar(8000))
returns varchar(8000)
as
begin
declare @Reset bit;
declare @Ret varchar(8000);
declare @i int;
declare @c char(1);

select @Reset = 1, @i=1, @Ret = ”;while (@i <= len(@Text))
select @c= substring(@Text,@i,1),
@Ret = @Ret + case when @Reset=1 then UPPER(@c) else LOWER(@c) end,
@Reset = case when @c like ‘[a-zA-Z]’ then 0 else 1 end,
@i = @i +1
return @Ret
end

Exemplo:

select dbo.ProperCase(‘this,my friends, is a test.wHat DO you think?i like shaquile o”neal’)
——————————————————————-

This,My Friends, Is A Test.What Do You Think?I Like Shaquile O’Neal
(1 row(s) affected)

Bom, e isso ai.

Abs a todos. até á próxima.

Encontrei essa dica no Jeff’s SQL Server Blog (http://weblogs.sqlteam.com)

create function ProperCase(@Text as varchar(8000))
returns varchar(8000)
as
begin
declare @Reset bit;
declare @Ret varchar(8000);
declare @i int;
declare @c char(1);select @Reset = 1, @i=1, @Ret = ”;while (@i <= len(@Text))
select @c= substring(@Text,@i,1),
@Ret = @Ret + case when @Reset=1 then UPPER(@c) else LOWER(@c) end,
@Reset = case when @c like ‘[a-zA-Z]’ then 0 else 1 end,
@i = @i +1
return @Ret
end

Comentários estão fechados.