Strip accents from strings, and output in lowercase
From PostgreSQL wiki
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' ); $$;
Convert any text to URI (case folded ascii) from string
Author: Pim Koeman License: CC Attribution-ShareAlike 3.0 Unported
CREATE OR REPLACE FUNCTION name2uri(text) RETURNS text IMMUTABLE STRICT LANGUAGE SQL AS $$ SELECT REPLACE(trim(regexp_replace(translate( lower($1), 'áàâãäåāăąèééêëēĕėęěìíîïìĩīĭḩóôõöōŏőùúûüũūŭůäàáâãåæçćĉčöòóôõøüùúûßéèêëýñîìíïş', 'aaaaaaaaaeeeeeeeeeeiiiiiiiihooooooouuuuuuuuaaaaaaeccccoooooouuuuseeeeyniiiis' ), '[^a-z0-9\-]+', ' ', 'g')),' ', '-'); $$;
