low ()
/ upper ()
Sử dụng một trong những cách này để gấp các ký tự thành chữ thường hoặc chữ hoa. Các ký tự đặc biệt không bị ảnh hưởng:
SELECT count(*), lower(name), number
FROM tbl
GROUP BY lower(name), number
HAVING count(*) > 1;
unaccent ()
Nếu bạn thực sự muốn bỏ qua các dấu phụ, như ngụ ý nhận xét của bạn, hãy cài đặt mô-đun bổ sung không công tâm
, cung cấp từ điển tìm kiếm văn bản loại bỏ dấu và cả hàm mục đích chung unaccent ()
:
CREATE EXTENSION unaccent;
Làm cho nó rất đơn giản:
SELECT lower(unaccent('Büßercafé'));
Kết quả:
busercafe
Điều này không tách các chữ không phải là chữ cái. Thêm regexp_replace ()
như @Craig đã đề cập cho điều đó:
SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));
Kết quả:
softbusercafe
Bạn thậm chí có thể xây dựng một chỉ mục chức năng trên đó: