Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rgto

Converter maiúsculas em minúsculas

Recommended Posts

Fala galera, pra quem precisar converter frases maiúsculas para minúsculas eis a função para colocar no SQL Server, são duas:

 

CREATE FUNCTION MaiMin  (@cString varchar(255))RETURNS varchar(255)ASBEGIN  DECLARE @cStrAux varchar(255)  DECLARE @z int  SET @cStrAux = (upper(substring(ltrim(rtrim(@cString)), 1, 1)))  SET @z = $2  WHILE (@z <= len(@cString))  BEGIN    IF (substring(@cString, @z, 1) = ' ' )    BEGIN      IF (dbo.NoMeio(@cString, @z)) = (-1)      BEGIN        SET @cStrAux = @cStrAux + ' ' + lower(substring(@cString, (@z + 1), 1))        SET @z = @z + 1       END      ELSE        IF (dbo.NoMeio(@cString, @z)) != -1        BEGIN          SET @cStrAux = @cStrAux + ' ' + upper(substring(@cString, (@z + 1), 1))          SET @z = @z + 1        END    END    ELSE      SET @cStrAux = @cStrAux + lower(substring(@cString, @z, 1))    SET @z = @z + 1  END  RETURN(@cStrAux)END

CREATE FUNCTION NoMeio (@cString varchar(255), @nPos int)RETURNS intASBEGIN    DECLARE @Resp int  SET @Resp = 0    IF upper(substring(@cString, @nPos, 4)) = " DA "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " DO "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " DE "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 5)) = " DAS "     SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 5)) = " DOS "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " OS "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " AS "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 3)) = " E "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 3)) = " É "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 3)) = " A "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 3)) = " O "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " NA "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " NO "    SET @Resp = -1    ELSE IF upper(substring(@cString, @nPos, 4)) = " EM "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " AO "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 5)) = " COM "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 4)) = " UM "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 5)) = " UMA "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 6)) = " PARA "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 6)) = " COMO "    SET @Resp = -1  ELSE IF upper(substring(@cString, @nPos, 5)) = " POR "    SET @Resp = -1  RETURN(@Resp)  END

 

Chame pela função MaiMin, por exemplo:

 

SELECT dbo.MaiMin(Titulo) AS Convertido FROM Tab_Obras;

 

Se alguém tiver alguma sugestão de melhoria, posta aqui.

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você não entendeu. Esta função transforma nomes como:(maiúsculas)"EULIBAS TANTE"para(minúsculas)"Eulibas Tante"... ok!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.