select que retorno os 14 numeros do cnpj de cliente sem a mascara

PostgreSQL

25/03/2015

Boa tarde!

Não consigo fazer um SELECT para mostrar todos os CNPJ dos clientes. No caso preciso de um select que mostre somente os 14 números do cnpj sem a mascara, somente os 14 numéricos.

Alguém pode me ajudar???
Gustavo

Gustavo

Curtidas 0

Respostas

Marcos P

Marcos P

25/03/2015

Pesquise sobre a função REPLACE, ou alguma equivalente, no Postresql.

Em Sql Server, seria...

DECLARE @CNPJ char(18)
set @CNPJ = '04.055.582/0004-58'

select @CNPJ as Original, REPLACE(REPLACE(REPLACE( @CNPJ, '.', '' ),'/',''),'-','') as Convertido
GOSTEI 0
Jothaz

Jothaz

25/03/2015

Gravar as mascara dos campos vai contra as boas praticas.
O correto é gravar os campos somente com os valores e depois mascarar.

Mas com nem sempre bom senso e boas prátias são comuns tente algo assim:

 select translate('012.345.678-90','.-','') as cpf

Ou 

SELECT to_number('09.876.543/1234-12','99 999 999 9999 99')

Ou

SELECT to_number('855.999.666-96',99999999999)


Não tenho como testar no momento, mas talvez os exemplos lhe dê uma luz.
GOSTEI 0
Gustavo

Gustavo

25/03/2015

Não deu certo, o pessoal esta usando a mesma tabela para cadastro de CPF e CNPJ, dai se tirar a mascara só ele traz tmb os CPFs
GOSTEI 0
Marcos P

Marcos P

25/03/2015

O que não deu certo ?

Se o seu problema é apenas selecionar o CNPJ para tratamento, inclua isso na query que busca os dados...
GOSTEI 0
Jothaz

Jothaz

25/03/2015

Você quer retornar somente os CNPJ´s?

Seja mais claro na elaboração da questão, senão fica difícil ajudar.
GOSTEI 0
Gustavo

Gustavo

25/03/2015

desculpa, isso somente os cnpj's
GOSTEI 0
Marcos P

Marcos P

25/03/2015

Assumindo que os CNPJ´s ( com máscara ) tem SEMPRE 18 posições, é trivial colocar isso em uma query :

SELECT Coluna, REPLACE(REPLACE(REPLACE( Coluna, '.', '' ),'/',''),'-','')
FROM Tabela
WHERE length(Coluna) = 18


Outra possibilidade é incluir no "where" alguma outra coluna em que exista a definição do tipo de inscrição do cliente.
GOSTEI 0
Gustavo

Gustavo

25/03/2015

Obrigado a todos pela ajuda, consegui resolver meu problema, vcs são féras hehehehehe
GOSTEI 0
POSTAR