Jump to content
Fórum Script Brasil
  • 0

Formatar CNPJ e CPF com update


Question

Eu tenho um campo chamado p_cpfcnpj, desejo atualizar todos os registros nesse campo, sendo uma condição para aqueles com até 11 dígitos que serão formatados como cpf e aqueles com mais de 11 dígitos para cnpj e aqueles com menos de 11 os dígitos serão atualizados como nulos.

Cpf é um dado de identificação pessoal no brasil, e o cnpj é um dado de identificação de empresas no brasil, cada uma com sua máscara.

Postgresql! Mas pode ser mysql.

Máscara Cpf: 999.999.999-99 Máscara Cnpj: 99.999.999 / 9999-99 * Preciso do sql. Atualize o conjunto de clientes p_cpfcnpj = "..." onde p_cpfcnpj = "..." ...

Para aplicar essa máscara, primeiro, precisarei de outro sql com atualização, limpando a máscara, para manter apenas os números, para garantir que todos recebam a máscara uma vez. 

Então, eu também preciso desse sql, para remover a máscara, além de aplicar a máscara!

Vale lembrar que, ao remover a máscara, você não pode apagar os zeros à esquerda. 

Hoje ou o campo é do tipo string, alguns são formatados e outros não.

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Para remover a mascara use o REPLACE

UPDATE tabela

SET campo = REPLACE(REPLACE(REPLACE(REPLACE(p_cpfcnpj, ".", ""), "-", ""), "/", ""), " ", "") ;

O update acima grava os dados desformatados .

O primeiro  REPLACE remove os espaços; o segundo remove as barras; o terceiro remove os traços e o quarto remove os pontos.

UPDATE tabela

SET p_cpfcnpj = NULL

WHERE LENGHT(p_cpfcnpj) < 11;

  No update acima ele verifica, depois de desformatar o campo p_cpfcnpj, se ele é menor que 11 digitos e o grava como nulo.

Para formatar o CNPJ use a função abaixo da seguinte forma:

UPDATE tabela 

SET CONCAT(SUBSTR(p_cpfcnpj,1,2),".",SUBSTR(p_cpfcnpj,3,3),".",SUBSTR(p_cpfcnpj,6,3),"/",SUBSTR(p_cpfcnpj,9,4),"-", SUBSTR(p_cpfcnpj,13,2)) 

WHERE LENGHT(p_cpfcnpj) > 11;

E para formates o CNPJ use

UPDATE tabela 

SET p_cpfcnpj = CONCAT(SUBSTR(p_cpfcnpj,1,3),".",SUBSTR(p_cpfcnpj,4,3),".",SUBSTR(p_cpfcnpj,7,3),"-",SUBSTR(p_cpfcnpj,10,2))

WHERE LENGHT(p_cpfcnpj) < 12

 

 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148680
    • Total Posts
      644502
×
×
  • Create New...