2013/7/15 Giovani Rodrigues <[email protected]>
> Boa tarde pessoal.
>
> Existe a possibilidade no postgres de formatar um campo cnpj ou cpf direto
> na consulta com expressão regulares?
>
> Eu armazeno somente números na tabela para esses campos.
>
Simples, você pode usar a função regexp_replace, para CPF:
SELECT regexp_replace('12345678911',
'^([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{2})$', '\1.\2.\3-\4');
Explicando algumas partes da expressão:
- ^ - considera a partir do início
- ([0-9]{3}) - três caracteres de 0 a 9, ou seja, numéricos (repete três
vezes, para separar a posição dos ponts, é capturado pelo \1, \2 e \3)
- ([0-9]{2}) - dois caracteres de 0 a 9 (o dígito verificador, é capturado
pelo \4)
Fica como lição de casa adaptar para CNPJ.
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral