lower()
/ upper()
Gunakan salah satunya untuk melipat karakter menjadi huruf kecil atau huruf besar. Karakter khusus tidak terpengaruh:
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent()
Jika Anda benar-benar ingin mengabaikan tanda diakritik, seperti yang tersirat dalam komentar Anda, instal modul tambahan unaccent
, yang menyediakan kamus pencarian teks yang menghilangkan aksen dan juga fungsi tujuan umum unaccent()
:
CREATE EXTENSION unaccent;
Membuatnya sangat sederhana:
SELECT lower(unaccent('Büßercafé'));
Hasil:
busercafe
Ini tidak menghapus non-huruf. Tambahkan regexp_replace()
seperti @Craig disebutkan untuk itu:
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Hasil:
softbusercafe
Anda bahkan dapat membuat indeks fungsional di atasnya: