assim também deu certo: select translate('012.345.678-9012','.-','') as cpf

     cpf
-----------------
01234567890

Em 06/08/07, Osvaldo Rosario Kussama <[EMAIL PROTECTED]>
escreveu:
>
> Euler Taveira de Oliveira escreveu:
> > Osvaldo Rosario Kussama wrote:
> >
> >> Use a função to_number, veja:
> >>
> http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html
> >>
> >> bdteste=# SELECT to_number('855.999.666-96',99999999999);
> >>   to_number
> >> -----------
> >>   855999666
> >> (1 registro)
> >>
> > Eu não utilizaria esta função pois CPFs que iniciam com zero(s) seriam
> > desconsiderados. Houve até uma discussão recente se não seria adequado
> > validar a máscara. Eu utilizaria translate ou regexp_replace.
> >
> > regression=# select translate(translate('012.345.678-90', '-', ''), '.',
> > '');
> >   translate
> > -------------
> >  01234567890
> > (1 registro)
> >
> >
>
>
> Euler:
>
> Creio que depende do resultado desejado.
> Se desejar numérico então 01 e 1 são absolutamente iguais e neste caso
> creio que a função to_number é adequada.
>
> bdteste=# SELECT to_number('09.876.543/1234-12','99 999 999 9999 99');
>     to_number
> ---------------
>   9876543123412
> (1 registro)
>
> Se desejar string aí sim '01' e '1' são diferentes. Neste caso creio que
> o mais simples seja utilizar o regexp_replace:
>
> bdteste=# SELECT regexp_replace('09.876.543
> /1234-12','[^[:digit:]]','','g');
>   regexp_replace
> ----------------
>   09876543123412
> (1 registro)
>
> Em minha opinião os campos CPF e CNPJ são numéricos e portanto devem ser
> declarados desta forma, NUMERIC(14) e NUMERIC(11) respectivamente ou
> mesmo BIGINT. Quanto a exibição aí sim devemos formatá-los com a máscara
> adequada:
>
> bdteste=# SELECT to_char(9876543123412,'09"."999"."999"/"9999"-"99') as
> cnpj;
>          cnpj
> ---------------------
>    09.876.543/1234-12
> (1 registro)
>
> bdteste=# SELECT to_char(987654312,'099"."999"."999"/"99') as cpf;
>         cpf
> -----------------
>    009.876.543/12
> (1 registro)
>
> Osvaldo
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Flávio Cardoso
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a