Ir para conteúdo

Arquivado

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

valtinho2005

Alterar no meio da string

Recommended Posts

Como faço para incluir dois zeros no segundo nível de um cadastro via banco de dados SQL 2008 R2. Exemplo todos os cadastros que tenham o segundo nível receba dois zeros.
de 001.001.001 para 001.00001.001.

Tentei dessa forma
UPDATE GCCUSTO SET CODCCUSTO = '%%.00%%%.%%%'

mas sem sucesso.

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende das regras aplicadas no campo.

 

Este valores serão sempre 3 numeros e ponto após?? Ou seja, pode ter 001. como 998. ??

E sempre terão valores com tres casas entre os pontos? xxx.yyy.zzz ?



Se as respostas do que lhe perguntei forem "SIM", segue um exemplo com algumas funções básicas:

 

declare @valor varchar(30)declare @parte1 varchar(5) declare @parte2 varchar(5) declare @parte3 varchar(5)  set @valor ='001.002.003' /***** EXEMPLO DE PARTICAO DE DADOS *****/select @valor -- variavel, len(@valor) -- qtde total de caracterer, substring(@valor,1,3) -- PARTICAO DE DADOS, charindex('.',@valor) -- Primeiro caracter PONTO, substring(@valor,5,(charindex('.',@valor))-1) -- PARTICAO DE DADOS apos o caracter ponto, '00'+(substring(@valor,5,(charindex('.',@valor))-1)) -- valor final /***** PARTICAO DE DADOS COM JUNCAO DE VALORES *******/select @parte1 = substring(@valor,1,3), @parte2 = substring(@valor,5,3), @parte3 = substring(@valor,9,3)select @parte1, @parte2, @parte3  select @parte1, '00'+@parte2, @parte3 -- valor final SEPARADOselect @parte1 + '00'+@parte2 + @parte3 -- valor final JUNTO 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lembrando que, informação no meio de uma string pode indicar um problema de modelagem.

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.