Converter maiúsculas em minúsculas
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
Discussão (2)
Carregando comentários...