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!