Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

berkowitz

Formatar campo numérico

Recommended Posts

Fala galera, firme???

 

To precisando de uma ajuda de vocês!

 

Tenho uma coluna numérica no meu BD q traz valores de 7 dígitos assim:

ex.: 1111111

 

Preciso fazer com que no site apareça assim: 111.111-1.

Para isso, fiz da seguinte forma:

left(prontuario,3) + '.' + substring(CAST(prontuario AS nvarchar(7)),4,3) + '-' + right(prontuario,1) AS Prontuario

 

Funcionou legal, mas tem um probleminha: Alguns prontuários não estão completos. Tem 6 dígitos (tem q ser 7).

Nesses casos, tenho que completar os 7 dígitos com o número '0'.

Por exemplo: O prontuário do cara está 529860. Tem q aparecer 052.986-0

Aí, com isso, minha solução não funciona!

 

Alguém pode me dar uma luz por favor???

 

VALEW!!!!

 

ABRAÇOS!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Segue um exemplo bem tosco:

DECLARE @VAR VARCHAR(7)SET @VAR = '12345'IF LEN(RTRIM(LTRIM(@VAR))) < 7	SET  @VAR =  @VAR +  REPLICATE('0',@VAR - Len(@VAR))SELECT @VAR
O REPLICATE irá resolver seus problemas.

 

Dê um olhada neste post http://forum.imasters.com.br/index.php?showtopic=224744 onde nosso amigo eriva_br aborda este assunto.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo.... entendi!!

Dei uma olha lá e montei o que preciso:

 

SELECT

REPLICATE('0',(7 - Len(Cast(prontuario as Varchar)))) + Cast(prontuario as Varchar) AS pf,

left([pf],3) + '.' + substring(CAST([pf] AS nvarchar(7)),4,3) + '-' + right([pf],1) AS [Prontuário]

FROM funcionarios

 

Porém isso não funciona! Qdo crio a coluna PF na primeira linha do script (REPLICATE.....) não consigo utilizá-la depois na segunda linhda (left....)! Como posso resolver isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

O SQL têm algumas nuance! http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

 

Troque isto:

SELECTREPLICATE('0',(7 - Len(Cast(prontuario as Varchar)))) + Cast(prontuario as Varchar) AS pf,left([pf],3) + '.' + substring(CAST([pf] AS nvarchar(7)),4,3) + '-' + right([pf],1) AS [Prontuário]FROM funcionarios
Por:

SELECTREPLICATE('0',(7 - Len(Cast(prontuario as Varchar)))) + Cast(prontuario as Varchar) AS pf,left(REPLICATE('0',(7 - Len(Cast(prontuario as Varchar)))) + Cast(prontuario as Varchar)) + '.' + substring(CAST([pf] AS nvarchar(7)),4,3) + '-' + right([pf],1) AS [Prontuário]FROM funcionarios
É só repetir a expressão (da criação pf) que acho q resolverá os desbeiço.

 

Agora eu sugiro você cria um FUNÇÃO para q a expressão fique mais simples.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.