lower()
/ upper()
Utilisez l'un d'entre eux pour plier les caractères en minuscules ou en majuscules. Les caractères spéciaux ne sont pas affectés :
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent()
Si vous souhaitez réellement ignorer les signes diacritiques, comme vos commentaires l'impliquent, installez le module supplémentaire unaccent
, qui fournit un dictionnaire de recherche de texte qui supprime les accents ainsi que la fonction générale unaccent()
:
CREATE EXTENSION unaccent;
C'est très simple :
SELECT lower(unaccent('Büßercafé'));
Résultat :
busercafe
Cela ne supprime pas les non-lettres. Ajouter regexp_replace()
comme @Craig l'a mentionné pour ça :
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Résultat :
softbusercafe
Vous pouvez même créer un index fonctionnel en plus :