Thread: German "umlaut insensitive" query
I want to query words with German "umlauts" (special characters) with and without normalization. I want to find "grün" (green) written "gruen" as well. Using "LIKE" with locale de_DE.iso88591 or .utf-8 does not help (Locale support should affect "LIKE", http://www.postgresql.org/docs/7.3/static/charset.html#AEN21761). Any Idea how to solve this? Define a special Operator? Has anyone already done this before? I am using PostgreSQL 7.3.2 on Linux. TIA, Robert Strötgen. :) -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Robert Strötgen mailto:robert@stroetgen.de http://www.stroetgen.de/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
One solution: select replace( replace( replace( replace( 'Test ä ö ü ß', 'ä','ae'), 'ö','oe' ), 'ü','ue'), 'ß','ss' ); replace ------------------ Test ae oe ue ss If you also have upcase-characters, you have to extend the statement. Robert Strötgen schrieb: > I want to query words with German "umlauts" (special characters) with > and without normalization. I want to find "grün" (green) written > "gruen" as well. > > Using "LIKE" with locale de_DE.iso88591 or .utf-8 does not help (Locale > support should affect "LIKE", > http://www.postgresql.org/docs/7.3/static/charset.html#AEN21761). > > Any Idea how to solve this? Define a special Operator? Has anyone > already done this before? > > I am using PostgreSQL 7.3.2 on Linux. > > TIA, > Robert Strötgen. :) >
> select replace( replace( replace( replace( 'Test ä ö ü ß', 'ä','ae'), > 'ö','oe' ), 'ü','ue'), 'ß','ss' ); Thanks a lot. A wrote this into a user defined function with lower() around the source string, and it works. :-) CREATE OR REPLACE FUNCTION public.unumlaut(varchar) RETURNS varchar AS 'select replace( replace( replace( replace( lower($1), \'ä\',\'ae\'), \'ö\',\'oe\' ), \'ü\',\'ue\'), \'ß\',\'ss\' );' LANGUAGE 'sql' IMMUTABLE STRICT; Best regards, Robert. :) -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Robert Strötgen mailto:robert@stroetgen.de http://www.stroetgen.de/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~