Luego de mirar en varios repositorios y sitios al final hemos dado con la resolución que te compartiremos aquí.
Solución:
Mucho ha cambiado desde esta pregunta. Se agregó soporte nativo para intercalación que no distingue entre mayúsculas y minúsculas en PostgreSQL v12. Esto básicamente desaprueba el citext
extensión, como se menciona en las otras respuestas.
En PostgreSQL v12, uno puede hacer:
CREATE COLLATION case_insensitive (
provider = icu,
locale = 'und-u-ks-level2',
deterministic = false
);
CREATE TABLE names(
first_name text,
last_name text
);
insert into names values
('Anton','Egger'),
('Berta','egger'),
('Conrad','Egger');
select * from names
order by
last_name collate case_insensitive,
first_name collate case_insensitive;
Consulte https://www.postgresql.org/docs/current/collation.html para obtener más información.
No hay intercalaciones que no distingan entre mayúsculas y minúsculas, pero existe la extensión citext:
http://www.postgresql.org/docs/current/static/citext.html
Para mi propósito, la palabra clave ILIKE hizo el trabajo.
De los documentos de postgres:
los key La palabra ILIKE se puede usar en lugar de LIKE para hacer que la coincidencia no distinga entre mayúsculas y minúsculas de acuerdo con la configuración regional activa. Esto no está en el estándar SQL, pero es una extensión de PostgreSQL.
Acuérdate de que tienes el privilegio agregar una reseña si acertaste tu traba justo a tiempo.