lower()
/ upper()
Użyj jednego z nich, aby złożyć znaki na małe lub duże litery. Nie ma to wpływu na znaki specjalne:
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent()
Jeśli rzeczywiście chcesz ignorować znaki diakrytyczne, jak sugerują Twoje komentarze, zainstaluj dodatkowy moduł nieakcent
, który zapewnia słownik wyszukiwania tekstu, który usuwa akcenty, a także funkcję ogólnego przeznaczenia unaccent()
:
CREATE EXTENSION unaccent;
To bardzo proste:
SELECT lower(unaccent('Büßercafé'));
Wynik:
busercafe
To nie pozbawia liter. Dodaj regexp_replace()
jak wspomniał @Craig:
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Wynik:
softbusercafe
Możesz nawet zbudować funkcjonalny indeks: