lower()
/ upper()
Brug en af disse til at folde tegn til enten små eller store bogstaver. Specialtegn påvirkes ikke:
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent()
Hvis du rent faktisk ønsker at ignorere diakritiske tegn, som dine kommentarer antyder, skal du installere det ekstra modul
kode>uaccent
, som giver en tekstsøgningsordbog, der fjerner accenter og også den generelle funktion unaccent()
:
CREATE EXTENSION unaccent;
Gør det meget enkelt:
SELECT lower(unaccent('Büßercafé'));
Resultat:
busercafe
Dette fjerner ikke ikke-bogstaver. Tilføj regexp_replace()
ligesom @Craig nævnte for det:
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Resultat:
softbusercafe
Du kan endda bygge et funktionelt indeks oven i det: