Strip accents from strings, and output in lowercase
From PostgreSQL wiki
Library Snippets
Unaccent text
Works with PostgreSQL
Any version
Written in
PL/Perl
Depends on
Nothing
Autor: Thom Brown
Extraídas de la lista de correo pgsql-general.
CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$ my ($input_string) = @_; $input_string =~ s/[âãäåāăą]/a; $input_string =~ s/[ÁÂÃÄÅĀĂĄ]/A; $input_string =~ s/[èééêëēĕėęě]/e; $input_string =~ s/[ĒĔĖĘĚ]/E; $input_string =~ s/[ìíîïìĩīĭ]/i; $input_string =~ s/[ÌÍÎÏÌĨĪĬ]/I; $input_string =~ s/[óôõöōŏő]/o; $input_string =~ s/[ÒÓÔÕÖŌŎŐ]/O; $input_string =~ s/[ùúûüũūŭů]/u; $input_string =~ s/[ÙÚÛÜŨŪŬŮ]/U; return $input_string; $$ LANGUAGE plperl;
CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text IMMUTABLE STRICT LANGUAGE SQL AS $$ SELECT translate( $1, 'âãäåāăąÁÂÃÄÅĀĂĄèééêëēĕėęěĒĔĖĘĚìíîïìĩīĭÌÍÎÏÌĨĪĬóôõöōŏőÒÓÔÕÖŌŎŐùúûüũūŭůÙÚÛÜŨŪŬŮ', 'aaaaaaaaaaaaaaaeeeeeeeeeeeeeeeiiiiiiiiiiiiiiiiooooooooooooooouuuuuuuuuuuuuuuu' ); $$;
