quarta-feira, 11 de novembro de 2009

Primeiras letras em maiúsculas sem Loop. (Camel Case)

Esse Select (CTE) usa a recursividade para trocar todas as primeiras letras das palavras para maiusculas:


Declare @Texto VarChar(8000)

Set @Texto = 'CamelCase é a denominação em inglês para a prática de escrever palavras compostas ou frases, onde cada palavra é iniciada com Maiúsculas e unidas sem espaços. É um padrão largamente utilizado em diversas linguagens de programação, como Java, Ruby e Python, principalmente nas definições de Classes e Objetos. Pela sua associação com tecnologia, o marketing se apropriou dessa maneira de escrever, injetando certo ar de "tecnologia" nos produtos assim nomeados: iPod, GameCube, OpenOffice.org, StarCraft, dentre outros.'

;With tbCamelCase as (
Select upper( substring( @Texto, 1, 1 )) AS cc,
1 as Seq
Union All
select Case When substring(@Texto, n.Seq, 1) = ' '
Then upper(substring( @Texto, n.Seq + 1, 1 ))
Else substring( @Texto, n.Seq + 1, 1)
End AS cc,
n.Seq + 1 as Seq
From tbCamelCase n
Where n.Seq + 1 <= Len(@Texto))
Select Replace((Select cc AS [text()] from tbCamelCase for xml path( '' )), ' ', ' ')
option(maxrecursion 30000)

Nenhum comentário:

Postar um comentário