Jump to content

Archived

This topic is now archived and is closed to further replies.

eriva_br

[Resolvido] Formatando com zeros a esquerda

Recommended Posts

formatar com zeros a esquerda

 

Exemplos de formatação:

tabela virtual temporaria para testes

set nocount ondeclare @tabTemp table (campoVC varchar(8), campoC char(8), campoINT int)insert into @tabTemp (campoVC, campoC, campoINT) values ('3', '3', '3')insert into @tabTemp (campoVC, campoC, campoINT) values ('20', '20', '20')insert into @tabTemp (campoVC, campoC, campoINT) values ('12359', '12359', '12359')insert into @tabTemp (campoVC, campoC, campoINT) values ('12345678', '12345678', '12345678')
exemplo 1:

SELECT	REPLICATE('0',(8 - Len(Cast(campoC as Varchar)))) + Cast(campoC as Varchar) AS [Format1 Varchar],		REPLICATE('0',(datalength(campoC) - Len(Cast(campoVC as Varchar)))) + Cast(campoVC as Varchar) AS [Format1 Char],	REPLICATE('0',(8 - Len(Cast(campoINT as Varchar)))) + Cast(campoINT as Varchar) AS [Format1 Int]FROM @tabTemp
exemplo 2:

SELECT	REPLICATE('0', 8 - datalength(campoVC)) + campoVC AS [Format2 Varchar],	REPLICATE('0', datalength(campoC) - datalength(ltrim(rtrim(campoC)))) + ltrim(rtrim(campoC)) AS [Format2 Char],	REPLICATE('0', 8 - datalength(ltrim(rtrim(campoINT)))) + ltrim(rtrim(campoINT)) AS [Format2 Int]FROM @tabTemp
OBS: nos exemplos 1 e 2, para o campo Char podemos usar a funçao datalength que já nos retornara a qtdade total de caracteres, já que campos char armazenam no campo como todo o espaço previsto, ao contrario de campos varchar que armazena somente o espaço ocupado.

Em um campo varchar(8) e um campo char(8) se colocarmos o mesmo valor '20' no vampo varchar vai ocupar 2 posicoes e no campo char vai ocupar as 8 posicoes

 

 

AUTOR: "eriva_br"

 

Dúvidas, criticas, contribuições, correções e adições seram bem vindas.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.