lower()
/ upper()
Använd en av dessa för att vika tecken till antingen gemener eller versaler. Specialtecken påverkas inte:
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent()
Om du verkligen vill ignorera diakritiska tecken, som dina kommentarer antyder, installera tilläggsmodulen
code>oaccent
, som tillhandahåller en textsökningsordlista som tar bort accenter och även den allmänna funktionen unaccent()
:
CREATE EXTENSION unaccent;
Gör det väldigt enkelt:
SELECT lower(unaccent('Büßercafé'));
Resultat:
busercafe
Detta tar inte bort icke-bokstäver. Lägg till regexp_replace()
som @Craig nämnde för det:
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Resultat:
softbusercafe
Du kan till och med bygga ett funktionellt index ovanpå det: