Ir para conteúdo
Fórum Script Brasil
  • 0

Formatar CNPJ e CPF com update


Obama

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...