lower()
/ upper()
Pomocí jednoho z nich můžete skládat znaky na malá nebo velká písmena. Speciální znaky nejsou ovlivněny:
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent()
Pokud skutečně chcete ignorovat diakritická znaménka, jak naznačují vaše komentáře, nainstalujte si doplňkový modul bez přízvuku
, který poskytuje slovník pro vyhledávání textu, který odstraňuje diakritiku a také obecnou funkci unaccent()
:
CREATE EXTENSION unaccent;
Je to velmi jednoduché:
SELECT lower(unaccent('Büßercafé'));
Výsledek:
busercafe
To neodstraní nepísmena. Přidejte regexp_replace()
jako se o tom zmínil @Craig:
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Výsledek:
softbusercafe
Na to můžete dokonce vytvořit funkční index: