quinta-feira, outubro 19, 2006

Colocando zeros a esquerda em valor

Hoje, um dos meus colegas de trabalho estava precisando colocar zeros a esquerda no resultado de uma consulta no MS SQL Server, e ao invés de se mostrar o valor inteiro, por exemplo o nro. 10, ele precisa mostrar 00010. Aí veio a pergunta como fazer isso? Acabamos montando um "solução", não muito elegante eu confesso, mas que resolveu o problema.

Usamos a função STUFF, que insere uma string em outra, e que recebe como parâmetros a string a ser "estufada", o valor inicial aonde a outra string será inserida, o valor a ser deletado e por fim, a string a ser inserida na original.

Abaixo transcrevemos um trechinho que pode ser usado como exemplo para mais alguém que tenha o mesmo problema.

/* Variaveis do exemplo */
declare
@valor_inteiro int,
@valor_string char(6),
@string_com_zeros char(6)

/* Atribucao dos valores */
select
@valor_inteiro = 151,
@valor_string = convert(char(6), @valor_inteiro),
/* Funcao STUFF , esse é o pulo do gato! */
@string_com_zeros = stuff('00000', 7 - Len(@valor_string), Len(@valor_string), @valor_string)

select
@valor_inteiro valor_inteiro,
RTrim(@string_com_zeros) campo_preenchido

Dúvidas é só escrever...abraços
--
Fernando D. Nappe
Analista de Sistemas

Nenhum comentário: