Em 9 de setembro de 2015 08:48, Fernando Cambiaghi <[email protected]>
escreveu:

> Bom dia.
>
> Eu procurei na lista sobre como uma consulta retornar caracteres
> acentuados e não acentuados, independente do valor passado como parâmetro,
> e o melhor que encontrei foi uma função para retornar caracteres sem
> acento, e então utilizar este retorno na consulta, mas não achei muito
> "elegante".
>
> No Sybase, tanto Enterprise quando Anywhere, quando realizo a consulta
>   SELECT * FROM cliente WHERE nm_cliente LIKE 'JOAO%';
> ele retorna tanto *JOAO DA SILVA* quanto *JOÃO DA SILVA*
> Já no PostgreSQL só retorna *JOAO DA SILVA*
>
> Com a função que encontrei, citada acima, teria que realizar as consultas
> da seguinte forma
>    SELECT * FROM cliente WHERE remove_acento(nm_cliente) LIKE
> remove_acento('JOAO%');
>
> Isso seria muito ruim visto que utilizo o mesmo sistema conectado em
> PostgreSQL e Sybase, sem falar que teria que rever o índice por nome, que
> deixará de ser utilizado com a função acima.
>
> Alguém pode ajudar sobre qual a melhor solução para este meu problema?
>
> Obrigado.
>
> PostgreSQL 9.4.1, compiled by Visual C++ build 1800, 32-bit
> ENCODING = 'UTF8'
> LC_COLLATE = 'Portuguese_Brazil.1252'
> LC_CTYPE = 'Portuguese_Brazil.1252'
>
> Fernando Luís Cambiaghi
> *[email protected] <[email protected]>*
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>

bom dia @Fernando

eu utilizo a extensão unaccent para cria-la segue abaixo 1) e para
utiliza-la no seu exemplo tambem 2)


1) create extension unaccent

2) SELECT * FROM cliente WHERE unaccent(nm_cliente) LIKE 'JOAO%';

-- 

Douglas Fabiano Specht
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a