lower()
/ upper()
Verwenden Sie eine davon, um Zeichen entweder in Klein- oder Großbuchstaben umzuwandeln. Sonderzeichen sind nicht betroffen:
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent()
Wenn Sie diakritische Zeichen tatsächlich ignorieren möchten, wie Ihre Kommentare andeuten, installieren Sie das zusätzliche Modul unaccent
, das ein Textsuchwörterbuch bereitstellt, das Akzente entfernt, sowie die Allzweckfunktion unaccent()
:
CREATE EXTENSION unaccent;
Macht es sehr einfach:
SELECT lower(unaccent('Büßercafé'));
Ergebnis:
busercafe
Dies entfernt keine Nicht-Buchstaben. Fügen Sie regexp_replace()
hinzu wie @Craig dafür erwähnt:
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Ergebnis:
softbusercafe
Sie können sogar einen funktionalen Index darauf aufbauen: