Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Use a função STUFF
Experimente
UPDATE GCCUSTO
set CODCCUSTO = left(ltrim(CODCCUSTO),4) + '00' + right(rtrim(CODCCUSTO),7)
where ...Lembrando que, informação no meio de uma string pode indicar um problema de modelagem.
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