GARANTIR DESCONTO

Fórum Como Deletar um caractere de um camo #483941

28/06/2014

0

usei um concatenar para acrescentar um "0" zero em compo. Ex: numerodocumento: 12345 queria que ficasse numerodocumento: 012345

usei:
update flan set numerodocumento = '0' || numerodocumento where dataemissao<'30.04.2014'

Só que tinha alguns documentos que já tinha esse "0" zero e ficou com um zero a mais. Ex: 0012345

Queria saber como faço para desconcatenar ou seja só tirar um '0' zero.

Tentei usar o replace:
UPDATE flan
SET numerodocumento = REPLACE(numerodocumento,'0','')
WHERE dataemissao<'30.04.2014'

Ficando: Ex. 12345

Só que ele tira todos dos '0' zeros eu queria tirar só um. Ex: 012345

Estou usando um bando fdb no ibexpert
Dalton_bat

Dalton_bat

Responder

Post mais votado

29/06/2014

Dalton estou mudando sua dúvida para sala Firebird, atualmente você está na sala do MySQL e certos comandos são proprietários para o MySQL e não serão reconhecidos pelo Firebird.

William

William
Responder

Gostei + 1

Mais Posts

29/06/2014

William

Respondendo sua dúvida, essa instrução SQL deve ajudar:

UPDATE flan SET numerodocumento = SUBSTRING(numerodocumento FROM 2 FOR CHAR_LENGTH(numerodocumento))
WHERE SUBSTRING(numerodocumento FROM 1 FOR 2) = '00'


Observe que só serão alterados os campos em que a posição inicial 1 e 2 possuírem '0', ou seja '00', acredito que seja o seu caso. Copio o texto do campo a partir da posição 2 porque está condicionado a somente trazer campos com '00'.

Estou supondo que o seu campo numerodocumento seja CHAR ou VARCHAR.
Responder

Gostei + 1

30/06/2014

Dalton_bat

Obrigado deu certinho. Mas, e se for para eu colocar mais uma condição como faço? Por exemplo: vou quer fazer isso só se o campo codtdo = '01' . Tentei acrescentar and
mas, não funcionou retornou:
Plan
PLAN (FLAN INDEX (FKFLAN_CODTDO))

------ Performance info ------
Prepare time = 0ms
Execute time = 0ms
Current memory = 10.357.232
Max memory = 11.550.176
Memory buffers = 2.048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 7
Responder

Gostei + 0

01/07/2014

William

Você quer ADICIONAR mais uma condição na cláusula WHERE ou quer ALTERAR a condição já existente?
Responder

Gostei + 0

01/07/2014

Dalton_bat

Adicionar mais uma na Where.
Tipo:
UPDATE flan SET numerodocumento = SUBSTRING(numerodocumento FROM 2 FOR CHAR_LENGTH(numerodocumento))
WHERE SUBSTRING(numerodocumento FROM 1 FOR 2) = '00' AND codtdo = '01'

Acrescentei com o and mas, não funcionou.
Responder

Gostei + 0

01/07/2014

William

Esse codtdo = '01' é substring ou o campo só possui 2 dígitos mesmo?
Responder

Gostei + 0

03/07/2014

Dalton_bat

nesta caso '01' é somente dois dígitos mas, o campo é VARCHAR (20) pois, utilizo abreviações em texto também.
Responder

Gostei + 0

02/01/2015

Dalton_bat

Alguém ainda poderia me ajudar aqui?
Responder

Gostei + 0

21/10/2015

Dalton_bat

Já resolvi pode encerrar.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar