sexta-feira, 25 de março de 2011

Função PadLeft em T-SQL

Já realizei esta tarefa diversas vezes em minhas jornadas como analista, mas nunca tive a idéia de criar uma função para isso. Em diversas integrações com softwares de terceiros, tive que gerar arquivos e mostrar valores com algum caracter concatenado a ele. Podemos fazer isso facilmente com a função Replicate, mas pensei em dar uma elaborada a mais nesta implementação e montar uma função que recebe como parâmetro o caracter que deve ser concatenado, comprimento final da string (comprimento depois da concatenação) e a string que vai receber os caracteres.

 

Criei a seguinte função:

 

CREATE FUNCTION PadLeft (@Char    CHAR(1),

                            @Length   INT,

                            @String VARCHAR(MAX))

RETURNS

      VARCHAR(MAX)

AS

BEGIN

  DECLARE @Resultado VARCHAR(1000)

 

  IF Len(@String) >= @Length

      SELECT

            @Resultado = @String

  ELSE       

      SELECT

             @Resultado = Replicate(@Char, @Length - Len(@String)) + @String

 

  RETURN @Resultado

END

GO

 

Para retornar a string “teste” com zeros a esquerda totalizando 50 carateres de comprimento, podemos usar a função assim:

 

SELECT

      dbo.PadLeft ('0',50,'teste') as [Teste]

 

O resultado será:

 

“000000000000000000000000000000000000000000000teste”

 

Até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!