Usuário com melhor resposta
Null ao colocar zero a esquerda - Sql Server

Pergunta
-
Boa tarde estou com um problema ao uzar a opção REPLACE
estou tentando bota o zero a esquerda em um campo de uma tabela
porem esse capom contem registro com mais de 20 caractere e menos de 20 caracteres
se eu usar
select REPLICATE ('0',(8 -len(1252514145)))+CAST (1252514145 as varchar(10))
ele mim reporta NULL
e por que q ele não retorna o valo 125251415 sem o zero preciso de algo com
ex: 8 zero a esquerda
00000015
00000145
00014254
125251415
1254718774
00000001
alguém pode mim ajudar
der de já agradeço pela atenção
Respostas
-
Experimente fazer um teste com o exemplo abaixo:
declare @Tabela table (Coluna varchar(30)); insert into @Tabela values ('15'); insert into @Tabela values ('145'); insert into @Tabela values ('14254'); insert into @Tabela values ('125251415'); insert into @Tabela values ('1254718774'); insert into @Tabela values ('1'); select case when LEN(Coluna) < 8 then RIGHT(REPLICATE('0', 8) + Coluna, 8) else Coluna end as Coluna from @Tabela
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Rhael_Andrade quinta-feira, 14 de maio de 2015 20:33
Todas as Respostas
-
Boa tarde,
Supondo que você queira deixar todos os valores com 25 dígitos experimente algo semelhante ao que segue:
select RIGHT(REPLICATE('0', 25) + CAST(1252514145 as varchar(10)), 25)
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
-
ai é onde está
se eu usar 25 o campo vai ficar muito grande
ou seja vou ter pedidos como o 1 q iria ficar 00000000000000000000000001
ai ficaria muito fora do padrão não achar?
- Editado Rhael_Andrade quinta-feira, 14 de maio de 2015 20:02
-
Qual é o tipo de dados dessa coluna? VarChar?
Você quer deixar os valores com quantos dígitos?
Assinatura: http://www.imoveisemexposicao.com.br
-
-
-
desculpe ele é varchar(30)
- Editado Rhael_Andrade quinta-feira, 14 de maio de 2015 20:25
-
Experimente fazer um teste com o exemplo abaixo:
declare @Tabela table (Coluna varchar(30)); insert into @Tabela values ('15'); insert into @Tabela values ('145'); insert into @Tabela values ('14254'); insert into @Tabela values ('125251415'); insert into @Tabela values ('1254718774'); insert into @Tabela values ('1'); select case when LEN(Coluna) < 8 then RIGHT(REPLICATE('0', 8) + Coluna, 8) else Coluna end as Coluna from @Tabela
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Rhael_Andrade quinta-feira, 14 de maio de 2015 20:33
-