Suponha que criamos uma tabela e inserimos um registro com o seguinte script.
CREATE TABLE your_table ( your_column VARCHAR COLLATE "tr-TR-x-icu" );
INSERT INTO your_table(your_column) VALUES ('Gider');
Quando executei o script revisado a seguir, obtive o resultado 'diferente'. O resultado deve ser 'igual', pois eu uso o agrupamento "tr-TR-x-icu" da coluna e a parte superior do texto 'Gider' é 'GİDER' em turco.
SELECT
CASE WHEN UPPER(your_column)=UPPER('Gider') THEN 'equal'
ELSE 'not equal'
END AS result
FROM your_table;
Quando executei o script a seguir, obtive a resposta correta (ou seja, 'igual').
SELECT
CASE WHEN UPPER(your_column)=UPPER('Gider' COLLATE "tr-TR-x-icu") THEN 'equal'
ELSE 'not equal'
END AS result
FROM your_table;
Seria bom se houvesse um método para definir esta propriedade de agrupamento dentro desta sessão.
Por exemplo, adicionando like SET COLLATE...
logo antes da consulta.
Desta forma, em vez de escrever UPPER(your_column)=UPPER('Gider' COLLATE "tr-TR-x-icu")
, bastaria apenas escrever UPPER(your_column)=UPPER('Gider')
.
Eu ficaria feliz se alguém pudesse oferecer uma solução.
Muitas felicidades.